希望得到一些幫助。 SQL新手,並試圖保持頭腦清醒。學習SQL:需要幫助使用HAVING從聚合獲得最小結果
我一直在考慮這個任務:
「使用HAVING,確定其直接下屬有最低工資平均。」
我的邏輯是在衍生表上加入一個連接,以計算每個具有直接報告的經理的工作人員的AVG工資。這個結果然後通過HAVING子句被過濾到MIN值。
SELECT Flash.firstname, Flash.lastname, Wally.AVGSalary,
Wally.[Direct Reports] FROM CrewMembers Flash
JOIN
(
SELECT Barry.crewMemberId, AVG(Zoom.salary) AS 'AVGSalary', COUNT(Zoom.firstname) AS 'Direct Reports'
FROM CrewMembers Barry
JOIN CrewMembers Zoom
ON Zoom.managerId = Barry.crewMemberId
GROUP BY Barry.crewMemberId
)
AS Wally ON Wally.crewMemberId = Flash.crewMemberId
GROUP BY Flash.firstname, Flash.lastname, Wally.AVGSalary, Wally.[Direct Reports]
HAVING MIN(Wally.AVGSalary) in (Wally.AVGSalary)
ORDER BY Wally.AVGSalary asc
我得到這個結果:
firstname lastname AVGSalary Direct Reports
Mike Patton 33666.500000 2
Kurt Corgan 37300.000000 2
Amber Bruckner 45851.666666 3
Doug Adams 86250.000000 2
Montgomery Scott 92500.000000 2
James Kirk 132666.750000 3
我難倒。我需要它給我帶最低價值的那一排,它給我所有的價值。我盯着這個,無法弄清楚我做錯了什麼。
我知道,通過在線觀察線索,使用TOP是一種過濾項目的方式,但尚未引入,我希望保留在迄今爲止已建立的參數範圍內。
任何批評我寫的或任何幫助將會很棒。就像我說的,我是新的,只是想跟上。
感謝,
Ĵ
嘿GurV,我在網上看過TOP,但那還沒有在課程中介紹過。 – ROKPLYR
是的,我想過使用WHERE。顯然,我必須使用HAVING來獲得結果。它似乎使這個問題有目的的荒謬。 – ROKPLYR
@ROKPLYR - 剛剛通過子查詢更新了答案(見第一個) – GurV