2014-02-16 48 views
1

我引用了一個表格,其中一個部門包含多個員工,每個員工都有一個salary如何過濾每個單獨部門的最低和最高工資?

department_id,employee_idsalary都是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

我正在使用oracle。謝謝你的糾正。 – dreamerdiver

回答

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; 
+0

這很好。是否可以添加一行以將結果限制爲某些部門ID? – dreamerdiver

+0

非常感謝您的幫助。 – dreamerdiver

0

一個簡單的解決方案是使用部門上的分組聲明以及您選擇的最低和最高薪水。這會給你每個部門的最小和最大值。然後,您可以加入您希望進行最終投影的其他數據點。

例如:

SELECT min(salary), max(salary) 
FROM Salary 
GROUP BY Department