このクエリの問題は、いくつかの箇所で "古典的SQL問題"と呼ばれています。私は解決策を見つけることができませんでした。問題は、Samが2つのヒートで同じスピードを持つため、結果に重複を避ける方法を見つけることができないということです。出発点"クラシック" 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.com)をテストデータと望みの結果と組み合わせれば、私たちがあなたを助けてくれるはずです。 –
あなたはどのプラットフォームを使用していますか? – Hogan
ヒートには2つの異なる値がありますが、どの値を保持したいですか? –