這個查詢問題我曾經在幾個地方被稱爲「經典SQL問題」。然而,我卻無法找到解決方案。問題是我無法找到避免結果重複的方法,因爲山姆在兩次加熱中速度相同。「經典」SQL查詢問題,如何避免重複
的出發點是從比賽一時間「結果」表:
Id Name Club Engine Class Heat Speed
1 Joe NYRC Rotax Senior 1 320
2 Sam GMRK HQ Senior 1 280
3 Adam HCRC Rossi Senior 1 180
4 Rick NYRC Ford Junior 1 220
5 Joe NYRC Rotax Senior 2 330
6 Sam GMRK HQ Senior 2 280
7 Adam HCRC Rossi Senior 2 190
8 Joe NYRC Rotax Senior 3 300
9 Sam GMRK HQ Senior 3 210
10 Adam HCRC Rossi Senior 3 200
我要的是最好的結果後,下令每類結果列表:
Pos Name Club Engine Class Heat Speed
1 Joe NYRC Rotax Senior 2 330
2 Sam GMRK HQ Senior 1 280
3 Adam HCRC Rossi Senior 3 200
我能有什麼得到:
Pos Name Club Engine Class Heat Speed
1 Joe NYRC Rotax Senior 2 330
2 Sam GMRK HQ Senior 2 280
3 Sam GMRK HQ Senior 1 280
4 Adam HCRC Rossi Senior 3 200
使用以下查詢:
select yt.Name, yt.Club, yt.Engine, yt.Class, yt.Heat, yt.Speed
from Result yt
where Speed = (select max(Speed) from Result st where yt.Name=st.Name)
AND Class = 'Senior'
Order by Speed DESC
應用不同的地方似乎是一個好主意,但我一直無法成功!
感謝支持
這是不完全清楚你想要什麼,但如果你創建一個[sqlfiddle(HTTP: //sqlfiddle.com)與測試數據和期望的結果相比,我們將更容易爲您提供幫助。 –
你在使用什麼平臺? – Hogan
熱有兩個不同的值,你想保留哪個值? –