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 employees
WHERE dept_id in (۱۰,۲۰)
ORDER BY dept_id;
DEPT_ID  HIGHEST
-------  -------
     ۱۰     ۳۵۰۰
     ۲۰     ۴۰۰۰
Categories: Data
X