我需要让我所在部门的员工薪水最低,而 我是通过反加入来做到这一点的。
select emp.employee_id,emp.last_name,emp.salary,emp.department_id
from employees emp
left join employees sml
on sml.department_id = emp.department_id and sml.salary < emp.salary
where sml.employee_id is null and emp.department_id is not null
Run Code Online (Sandbox Code Playgroud)
但有人告诉我,可以通过使用一次select的 window函数来做到这一点。但是我不能按department_id分组并同时使用它。那是虫子还是我愚蠢?
SELECT department_id,
min(salary) OVER (partition by department_id) as minsalary
FROM employees;
GROUP BY department_id
Run Code Online (Sandbox Code Playgroud)
SQL Developer说00979。00000-“不是GROUP BY表达式”