我有一个 SQL 查询,它从列出运动员 100 米和 200 米比赛时间的表中检索数据。该查询仅根据 检索每个运动员的最佳比赛时间athlete_id
,它还想知道比赛时间是 100 米还是 200 米时间 ( event_code
)。
因此,跑步者可以有多个比赛时间,但查询只能从每个比赛中的每个跑步者那里获得最佳比赛时间。
问题是,如果运动员两次或多次完成完全相同的最佳比赛时间,则查询会检索所有这些比赛时间。如何确保查询只检索一个值?
这是代码:
select r.*
from result r
inner join (
select athelete_id, min(result_time) as FastestTime
from result
where event_code = 1
group by athelete_id
) rm on r.athelete_id = rm.athelete_id and r.result_time = rm.FastestTime