LAST_VALUE

توضیحات

این تابع مقدار اولین سطر بر اساس هر گروه را بر می‌گرداند.

دستور

تابع  LAST_VALUE به صورت زیر نوشته می‌شود:

۱
۲
۳
LAST_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: گزینه‌ای اختیاری است.


مثال

مثالی از خروجی تابع LAST_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 LAST_VALUE(salary)
 OVER (ORDER BY salary ASC
       RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)
       AS \"HIGHEST\"
FROM employees;
HIGHEST
-------
   ۵۰۰۰
SELECT DISTINCT dept_id, LAST_VALUE(salary)
 OVER (PARTITION BY dept_id ORDER BY salary ASC
       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