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 employeesWHERE dept_id in (۱۰,۲۰)ORDER BY dept_id;DEPT_ID HIGHEST------- ------- ۱۰ ۳۵۰۰ ۲۰ ۴۰۰۰ |
