这个查询问题我曾经在几个地方被称为“经典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
热有两个不同的值,你想保留哪个值? –