高度な SQL クエリ (MSSQL 2000) について助けが必要です。
陸上競技の 100 メートルと 200 メートルのレース時間を一覧表示する Result というテーブルがあります。ランナーは複数のレースタイムを持つことができますが、各イベントでの各ランナーのベスト タイムのみを表示したいと考えています。
結果テーブルには、Result_id、attribute_id、result_time、result_date、event_code の 5 つの列が含まれています。したがって、値をリストするときは、athlete_id が一意である必要があり、result_time が最速 (最低) の値である必要があります。また、100 メートルと 200 メートルの結果時間が同じテーブルに混在しているため、event_code を "= 1" にするか "= 2" にするかを選択できるようにしたいと考えています。
数日前に同様の質問をしましたが、event_code 条件はありませんでした。
これが私たちの出した答えです。
select r.*
from result r
inner join (
select athelete_id, min(result_time) as FastestTime
from result
group by athelete_id
) rm on r.athelete_id = rm.athelete_id and r.result_time = rm.FastestTime
このスニペットに event_code 条件を追加する方法はありますか?