如何获得每天的最大记录数?最大(计数)MySQL数据库

如何获得每天的最大记录数?最大(计数)MySQL数据库,mysql,sql,select,Mysql,Sql,Select,你好 我有一张桌子: 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(time

你好

我有一张桌子:

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

您可以将窗口函数与聚合一起使用:

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;

是代码正确运行的演示。

指定MySQL版本。结果:。。。但我需要这样的东西:提供INSERT INTO和示例数据,这些数据给出并且必须给出发布的输出。如果您设置sql FIDLE,您将很快得到答案。比命令更好,因为它减少了进入的障碍。@Danielvarrell:如果向DDL和DML额外提供了小提琴,那么小提琴就可以了。但DDL和DML应该始终在问题本身中提供。这样一来,问题就不取决于fiddle站点的可用性,如果fiddle站点崩溃,它对未来的读者毫无用处。是的,对不起,我不是有意建议不要在问题中添加数据。始终将所有相关数据放在问题中,但fiddles使其可验证和可复制,而无需我自己设置sql表。不幸的是,它不起作用,因为-“选择”在此位置对于此服务器版本无效。版本-8.0。19@Riot . . . 对于订单中应该描述的最大值。是的,现在它的工作,但结果不正确:2019.12.25 20 1 2019.12.26 00 1 1我这样解决它:选择日期\u格式日期,'%Y.%m.%d'作为日期,maxsumm从选择日期\u格式日期,'%Y.%m.%d'作为日期,summ从选择日期\u格式时间戳,'%Y.%m.%d'作为日期,将字段_2计数为表_1 f中的总和,其中字段_1按日期分组v按日期分组e按日期分组;结果:2019.12.25 12 2019.12.26 11但这不是一个漂亮的解决方案。