2017-02-14 139 views
0

我是SqlPlus的新手,我試圖顯示所有部門中最高和最低的平均工資。到目前爲止,我只能顯示最高的薪水,但我似乎無法顯示最低的薪水。顯示最高和最低值Sqlplus

這是我走到這一步,

SELECT deptno AS "Dept. No", MAX(sal) AS "Salary" 
FROM emp e 
WHERE e.sal > (SELECT avg(sal) FROM emp) 
GROUP BY deptno; 

我得到的輸出是

Dept. No Salary 
30   2850 
20   3000 
10   5000 

我試圖讓

Dept. No Salary 
30   2850 
30   950 
20   3000 
20   800 
10   5000 
10   1300 

哦,我現在用的是部門和emp表格樣本!

+0

您是指所有部門的最高和最低平均工資是什麼意思?計算每個部門的平均值(每個部門有一個平均值),然後從所有這些平均值(每個部門一個平均值)中只顯示最高和最低值? – mathguy

+0

在任何情況下:你寫的查詢都有一個'where'子句,兩個條件通過'和'連接,兩個條件直接相互矛盾;所以很明顯,不管其他什麼都會選擇零行。 – mathguy

+0

@mathguy我的意思是顯示高和低。例如;假設最高價格是50美元,最低價格是20美元,我想要顯示這兩個值。到目前爲止,我只能顯示50美元的價值。我編輯了我的問題以顯示我的預期輸出! – Catastrophe

回答

1

如果有其他人有同樣的問題,此查詢適用於我! :)

SELECT deptno AS "Dept. No", MAX(sal) AS "Highest Salary", MIN(sal) AS "Lowest Salary" 
FROM emp 
GROUP BY deptno; 
+0

哈哈,「同樣的問題」會被弄糊塗:-)任務很簡單:你需要每個部門的最低和最高工資。這幾乎可以將單詞逐個轉換爲SQL。這個「問題」是,你認爲你正在尋找一些平均工資,而這與實際工作無關。 –