Mysql组行
我有一张桌子,上面有: 身份证(骑手身份证) 时间(是他所做的时间) 会话(完成时间的会话数) 我想知道如何在mysql中查询如下结果:Mysql组行,mysql,group-by,Mysql,Group By,我有一张桌子,上面有: 身份证(骑手身份证) 时间(是他所做的时间) 会话(完成时间的会话数) 我想知道如何在mysql中查询如下结果: idRider |fast sesion | count laps 45652 | 2 | 1 54645 | 1 | 1 51284 | 3 | 1 54582 | 2 | 2 查询应在骑手获得最
idRider |fast sesion | count laps
45652 | 2 | 1
54645 | 1 | 1
51284 | 3 | 1
54582 | 2 | 2
查询应在骑手获得最佳时间(快速会话)的哪个会话中返回,并计算圈数(在快速会话中完成)
按idRider分组。
谢谢。此查询将为您提供所需的结果。它将
圈数
表与每个车手每次训练的最短时间和圈数相关联,然后与每个车手获得最快训练的最短时间相关联:
SELECT l.idRider, l.session, l.time, s.numlaps
FROM laps l
JOIN (SELECT idRider, `session`, MIN(time) AS fastest, COUNT(*) AS numlaps
FROM laps
GROUP BY idRider, `session`) s ON s.idRider = l.idRider AND s.session = l.session AND s.fastest = l.time
JOIN (SELECT idRider, MIN(time) AS fastest
FROM laps
GROUP BY idRider) f ON f.idRider = s.idRider AND f.fastest = s.fastest
ORDER BY idRider
输出:
idRider session time numlaps
45652 2 2 1
51284 1 3 1
54582 2 1 2
54645 1 2 1
你能告诉我们你试过什么吗?@pepqq别担心。我很高兴能帮上忙。
idRider session time numlaps
45652 2 2 1
51284 1 3 1
54582 2 1 2
54645 1 2 1