select e.employee_id,
e.first_name || ' ' || e.last_name name,
e.department_id dept,
e.hire_date,
e.salary,
rank() over(partition by e.department_id order by e.salary) as rank,
dense_rank() over(partition by e.department_id order by e.salary) as dense_rank,
min(e.salary) keep(dense_rank first order by e.salary) over(partition by e.department_id) worst,
max(e.salary) keep(dense_rank last order by e.salary) over(partition by e.department_id) best,
lag(e.salary, 1, 0) over(order by e.hire_date) prev_salary,
lead(e.salary, 1, 0) over(order by e.hire_date) next_salary,
first_value(e.first_name) over(partition by e.department_id order by e.salary) first_value_asc,
first_value(e.first_name) over(partition by e.department_id order by e.salary desc) first_value_desc,
last_value(e.first_name) over(partition by e.department_id order by e.salary) last_value_asc,
last_value(e.first_name) over(partition by e.department_id order by e.salary desc) last_value_desc,
row_number() over(partition by e.department_id order by e.employee_id) as row_number
from employees e;
07-06
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交