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 - 平均生日最多的一天的主要内容,如果未能解决你的问题,请参考以下文章