MySQL группы строк строк - PullRequest
       7

MySQL группы строк строк

0 голосов
/ 30 сентября 2019

В Строки группы Mysql У меня потрясающий ответ, и теперь я блокируюсь с другой частью. Как и раньше, у меня есть:

idlap   idRider session time
1        45652    1      4
2        54645    1      2
3        45652    2      2
4        54582    2      1
5        51284    1      3
6        54582    1      3
7        54645    2      4
8        51284    2      5
9        54582    2      2

, и теперь мне нужно посчитать, сколько кругов в медленной сессии и количество сессий. Результат должен быть несколько:

id    lowest sesion    count laps
45652       1              1
54645       2              1
51284       1              1
54582       1              1

Я пробую разные способы, учитывая стратегию Ника, но ничего не получается. Спасибо за помощь.

1 Ответ

0 голосов
/ 30 сентября 2019

Вы можете просто изменить MIN на MAX в этом запросе. Обратите внимание, что самое медленное время 51284 на самом деле в сеансе 2 (время = 5), а не в сеансе 1.

SELECT l.idRider, l.session, l.time, s.numlaps
FROM laps l
JOIN (SELECT idRider, `session`, MAX(time) AS slowest, COUNT(*) AS numlaps
      FROM laps
      GROUP BY idRider, `session`) s ON s.idRider = l.idRider AND s.session = l.session AND s.slowest = l.time
JOIN (SELECT idRider, MAX(time) AS slowest
      FROM laps
      GROUP BY idRider) f ON f.idRider = s.idRider AND f.slowest = s.slowest
ORDER BY idRider

Вывод:

idRider session time    numlaps
45652   1       4       1
51284   2       5       1
54582   1       3       1
54645   2       4       1

Демонстрация на dbfiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...