FIRST_VALUE
توضیحات
این تابع مقدار اولین سطر بر اساس هر گروه را برمیگرداند.
دستور
تابع FIRST_VALUE به صورت زیر نوشته میشود:
| ۱ ۲ ۳ |
FIRST_VALUE (expression) [RESPECT NULLS | IGNORE NULLS] OVER ([query_partition_clause] [order_by_clause [windowing_clause]]) |
.
RESPECT NULLS | IGNORE NULLS: گزینهای اختیاری است، مشخص میکند که آیا مقادیر null در نظر گرفته شوند یا نه.
query_partition_clause: گزینهای اختیاری است، برای دستهبندی نتایج به گروههایی بر اساس یک یا دو ویژگی به کار میرود.
order_by_clause: گزینهای اختیاری است، که برای مرتب کردن دادهها در هر گروه بر اساس ویژگی به کار میرود.
windowing_clause: گزینهای اختیاری است، تعیین کننده سطرها است برای اراده به تابع.
مثال
مثالی از خروجی تابع FIRST_VALUE را مشاهده میکنیم:
| ۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ ۲۲ ۲۳ ۲۴ ۲۵ ۲۶ ۲۷ ۲۸ ۲۹ ۳۰ ۳۱ ۳۲ ۳۳ |
EMPLOYEE_ID LAST_NAME FIRST_NAME SALARY DEPT_ID----------- --------- ---------- ------ ------- ۱۰۰۰ Jackson Joe ۲۰۰۰ ۱۰ ۲۰۰۰ Smith Jane ۳۵۰۰ ۱۰ ۳۰۰۰ Ferguson Samantha ۱۹۰۰ ۱۰ ۴۰۰۰ Reynolds Allen ۴۰۰۰ ۲۰ ۵۰۰۰ Anderson Paige ۳۲۵۰ ۲۰ ۶۰۰۰ Johnson Derek ۲۷۵۰ ۲۰ ۷۰۰۰ Nelson Sarah ۵۰۰۰ ۳۰ ۸۰۰۰ Burke Russell ۱۵۰۰ ۳۰SELECT DISTINCT FIRST_VALUE(salary) OVER (ORDER BY salary DESC RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS \"HIGHEST\"FROM employees;HIGHEST------- ۵۰۰۰SELECT DISTINCT dept_id, FIRST_VALUE(salary) OVER (PARTITION BY dept_id ORDER BY salary DESC RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS \"HIGHEST\"FROM employeesWHERE dept_id in (۱۰,۲۰)ORDER BY dept_id;DEPT_ID HIGHEST------- ------- ۱۰ ۳۵۰۰ ۲۰ ۴۰۰۰ |
