我引用了一组表,其中一个部门包含多个员工,每个员工都有一个salary
。
department_id
,employee_id
和salary
都是EMPLOYEES
表的一部分。我想确定每个部门的最低和最高工资。
我的查询如下:
SELECT employee_id, first_name||' '||last_name AS full_name, SALARY
DECODE(department_id, 50, (min(salary)||' '||max(salary)),
60, (min(salary)||' '||max(salary)),
80, (min(salary)||' '||max(salary)),
90, (min(salary)||' '||max(salary)),
employee_id)
SALARY_RANGE
FROM EMPLOYEES;
关于如何完成此查询的想法?感谢
答案 0 :(得分:3)
如果您想要每个部门的最低和最高工资,为什么不这样做:
select department_id, min(salary)||' '||max(salary) as Salary_Range
from Employees
group by department_id;
您可以使用where
select department_id, min(salary)||' '||max(salary) as Salary_Range
from Employees
where department_id in (50, 60, 80, 90)
group by department_id;
答案 1 :(得分:0)
一个简单的解决方案是在Department上使用group by语句,并在您的选择中使用min和max salary。这将为您提供每个部门的最小和最大。然后,您可以在最终投影中加入您想要的其他数据点。
示例:
SELECT min(salary), max(salary)
FROM Salary
GROUP BY Department