【问题标题】:MYSQL - day with the most birthdays on averageMYSQL - 平均生日最多的一天
【发布时间】: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 ...你的代码”
  • 请提供样本数据和期望的结果。

标签: mysql sql mysql-workbench


【解决方案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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多