我在尝试从mySQL表检索数据时遇到麻烦。该表保存了所有参赛者在赛车比赛中的所有单圈时间。该表为每个种族有多个条目。我想选择每个参与者的最佳圈速,但是我不确定如何摆脱每个参与者的重复。
我尝试了以下语句。
SELECT *
FROM laptimes
GROUP BY laptime,
username
该表如下所示:
lap username laptime
2 Blackvault 1200.000
1 Blackvault 1234.000
3 Elmo 1235.000
我只想显示Blackvault的第二圈和Elmo的唯一一圈。
SQL将需要通用,因为可能有N个赛车手和N个圈。
任何帮助表示赞赏。
最佳答案
如果要获取原始数据行(在MySQL中),则需要获取最佳时间并将其连接到原始数据。这是使用join
的方法:
select lt.*
from laptimes lt join
(select username, min(laptime) as laptime
from laptimes
group by username
) lu
on lu.username = lt.nusername and lu.laptime = lt.laptime;
如果不需要
id
(或其他列),则子查询可能足以满足您的目的。