MYSQL - 平均生日最多的一天

Posted

技术标签:

【中文标题】MYSQL - 平均生日最多的一天【英文标题】:MYSQL - day with the most birthdays on average 【发布时间】:2020-06-15 19:17:08 【问题描述】:

所以我想知道平均大多数人出生的那一天的名字。 我这样做了:

select dayname(People.birth) as day, count(*)
from People
group by dayname(People.birth)
group by count(*) desc

但这基本上只是返回大多数人出生日期的日期名称。我需要的是,从每个星期取出大多数人出生的那一天,然后返回所有星期中最常见的那一天。 (例如:它返回星期一,因为大多数人在星期一出生。不是星期六,因为只有一个星期六很多人出生)。顺便说一句,人的表看起来像这样:p.id,p.name,p.weight,p.birthdate

【问题讨论】:

然后将星期添加到分组中。 我认为当您需要首先选择日期时,您需要使用“DAYOFWEEK()”函数,然后您可以按此函数的结果进行计数,这应该可以工作。比如“SELECT DAYOFWEEK(People.birth) as day ...你的代码” 请提供样本数据和期望的结果。 见meta.***.com/questions/333952/… 【参考方案1】:

如果您想要每周的星期几,那么您可以使用:

select t.*
from (select year(p.birth) as yr, week(p.birth) as week, dayname(p.birth) as day, count(*) as cnt,
             row_number() over (partition by year(p.birth), week(p.birth) order by count(*) desc
      from People p
      group by yr, week, day
     ) yw
where seqnum = 1;

【讨论】:

以上是关于MYSQL - 平均生日最多的一天的主要内容,如果未能解决你的问题,请参考以下文章

MySQL查询练习

MySQL数据库

MySQL查询一天中房社访问次数最多的时间

平均数,中位数,众数,极差,方差,标准差各代表着啥

MySQL:获取平均时差?

mysql慢查询分析工具比较与实战