MySQL: группировать записи по дате и времени, игнорируя «секунды» - PullRequest
2 голосов
/ 08 августа 2011

У меня есть таблица с тысячами таких записей:

[Row]    ActionTime              Score
=======================================
[#1]   2011-08-06 12:30:15       30
[#2]   2011-08-06 12:30:20       50
[#3]   2011-08-06 12:30:47       40
[#4]   2011-08-06 12:40:12       30
[#5]   2011-08-06 12:40:28       10
[#5]   2011-08-06 12:45:12       60

Я хочу сгруппировать данные по минутам и найти максимальный балл для каждой группы.

Таким образом, результаткак это:

[Row]  ActionTime (without "second")          Score        
========================================================
[#1]   2011-08-06 12:30:00                     50  
[#2]   2011-08-06 12:40:00                     30
[#3]   2011-08-06 12:45:00                     60

Как я могу сделать это через MySQL?

Спасибо!

Ответы [ 2 ]

6 голосов
/ 08 августа 2011
select 
date_format(actiontime,'%Y-%m-%d %H:%i:00') as act_time,
max(score) as greater
from table
group by act_time
1 голос
/ 19 мая 2017

Вам не нужно выбирать форматированное поле, вы можете использовать его непосредственно в GROUP BY.

SELECT * FROM table_name
GROUP BY date_format(datetime_field, '%Y-%m-%d %H:%i:00');
...