Как получить максимальное количество записей в день? макс (количество) MySQL ДБ - PullRequest
0 голосов
/ 01 августа 2020

Добрый день!

У меня есть таблица:

create table table_1 (field_1 varchar (10),  timestamp datetime(3),  field_2  varchar (10));

Формат даты yyyy-mm-ddthh: mm: ss.000z.

И мне нужно подсчитайте количество записей в час и получите максимальное количество этих записей в день.

Запрос:

select date_format(date,'%Y.%m.%d') as date, max(summ)  from (select date_format(timestamp,'%Y.%m.%d %H' ) as date, count(field_2) as summ from table_1 a where field_1 in (1) group by date) b group by date;

Результат:

date        summ
2019.12.25  2
2019.12.25  3
2019.12.25  12

Но мне нужно вкратце:

date        summ
2019.12.25  12
2019.12.26  15
2019.12.27  14

1 Ответ

1 голос
/ 01 августа 2020

Вы бы использовали оконные функции с агрегированием:

select t.*
from (select date_format(timestamp, '%Y.%m.%d %H') as date, count(field_2) as summ,
             row_number() over (partition by date(timestamp) order by count(field_2) desc) as seqnum
      from table_1 a
      where field_1 in (1)
      group by date, date(timestamp)
     ) t
where seqnum = 1;

Здесь - демонстрация того, что код работает правильно.

...