我在尝试从mySQL表中检索数据时遇到了麻烦。该表保存了所有参与者参加赛车活动的所有单圈时间。该表有每个种族的多个条目。我想选择每个参与者的最佳单圈时间,但是我不确定如何摆脱每个参赛者的重复。
我尝试过以下声明。
SELECT *
FROM laptimes
GROUP BY laptime,
username
表格如下:
lap username laptime
2 Blackvault 1200.000
1 Blackvault 1234.000
3 Elmo 1235.000
我只想显示Blackvault的第2圈和Elmo唯一一圈。 SQL需要是通用的,因为可能有N个赛车手和N个圈数。
感谢任何帮助。
答案 0 :(得分:2)
如果您想获取原始数据行(在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
(或其他列),则子查询可能足以满足您的目的。
答案 1 :(得分:1)
如果您只需要选择best laptime
,那么您需要:
SELECT lap,username, min(laptime) as laptime
FROM laptimes
GROUP BY username