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 查询应在骑手获得最

我有一张桌子,上面有: 身份证(骑手身份证) 时间(是他所做的时间) 会话(完成时间的会话数)

我想知道如何在mysql中查询如下结果:

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