(很抱歉的標題,也想不出該如何解釋)SQL - 子查詢頂級的結果,而不爲了通過
所以,我有一個奧運的數據庫,基本佈局是,有一個競爭對手錶competitornum ,givenname和familyname(其他欄不需要這個)還有一個結果表與competitornum和地點(1到8之間)。
我試圖獲得給定名稱和familyname和金,銀總數,和銅牌(地點= 1,2或3)
它還需要僅顯示與所述頂部的結果獎牌數,而這一切,而不使用ORDER BY子句...
我問這個問題之前,但意識到我忘記說了一些事情,但加入了加粗部分之前以前的答案是:
SELECT c.Givenname, c.Familyname, COUNT(r.places) AS TotalPlaces
FROM Competitors c INNER JOIN Results r
ON r.Competitornum = c.Competitornum
WHERE r.place IN (1,2,3)
GROUP BY c.Givenname, c.Familyname
我想這需要另一個子查詢像
AND TotalPlaces = (SELECT MAX(TotalPlaces))
,但我不知道如何使用別名的子查詢時,它的子查詢以上......
所有幫助表示感謝,謝謝!
編輯:我的任務正式的問題(我想不出答案,我真的盡力了,這就是爲什麼我在這裏):
哪個競爭對手(S)得到數最多獎牌(一起計算金,銀和銅)?列出他們的給定姓氏和他們的獎牌總數(僅限)。
警告:您的解決方案不得假定競爭對手的名稱始終不同 請勿在此查詢的任何部分使用ORDER BY子句。
「所有這些都沒有使用Order By子句」?這就像說我想學習如何游泳,但不要把水放在泳池裏!或....這是作業嗎? (如果你真的有一個很好的理由不使用Order By,你不應該在這個問題中說出來嗎?) –
這是一個任務,我無法弄清楚D: 我不認爲我們需要order by clause雖然 –
作爲一個方面提示:「GROUP BY c.Givenname,c.Familyname'」和「您的解決方案不得假定競爭對手的名字總是不同」是矛盾的。 –