添加三個表的屏幕截圖顯示了參考表。
我的目標是獲取每個國家最小 - 最大,平均工資日期
我想這個代碼
select
s.Descrip,
MIN(Salary) AS Minimum_per_state,
MAX(Salary) AS Maximum_per_state,
AVG(Salary) AS Average_per_state
from
(select
Month_ending,
Emp_id,Salary,
Descrip
from
Dim_state
full join
Dim_city ON Dim_state.State_id = Dim_city.State_id
full join
Employee_details ON Dim_city.City_id = Employee_details.City_id
where
Month_ending = 20150131) s
GROUP BY
Descrip
,但我得到這樣的輸出:
description min_sal max_sal avg_sal
Delhi 30000 34000 32000
maharastra 25000 35000 30000
tamil nadu 35000 50000 42000
Westbengal 25000 50000 37500
問題是班加羅爾和果阿丟失。
我可以知道哪部分出了問題嗎?
我想你的代碼得到什麼我提到的相同輸出在問題中只有4條記錄。 @nayak – sekharvarma
「Month_ending = 20150131」from your query is the culprit:)... 記住:如果沒有這個where子句,它會按照您的預期連接所有記錄。但是對於這兩個狀態,加入後來自employee_details的值將爲NULL。 因此,對於您的用例,您真正需要的是將該條件放入連接子句中。 Dim_city.City_id = Employee_details.City_id and Month_ending = 20150131 – Nayak