【问题标题】:Grouping birthday results by Month按月份对生日结果进行分组
【发布时间】:2011-04-10 22:02:32
【问题描述】:

我有一个用户列表和他们的生日。我需要打印每个月的生日列表并按天分组。例如:

24 日星期一 (2):赫皮纳·德皮纳,约翰·多伊

27 日星期二 (1):尼古拉斯·凯奇

28 日星期五 (1):迈克尔·杰克逊

如何通过一个 SQL 调用来实现这一目标?如果我这样分组,我会丢失记录:

SELECT COUNT(*) FROM user GROUP BY MONTH(birthday)

有什么想法吗? (我用的是 mysql + php)

【问题讨论】:

    标签: mysql date group-by


    【解决方案1】:

    您无法在同一查询中获取作为聚合函数的计数和详细记录。如果名称是必不可少的,那么您将不得不在 PHP 中手动构建计数,然后以所需的格式显示记录。

    【讨论】:

    • 你是对的。我在 php 端实现了一个解决方案。谢谢。
    【解决方案2】:
    SELECT MONTH(birthday) month,
           FORMAT(birthday, '%W %D') day,
           COUNT(user) count,
           GROUP_CONCAT(user SEPARATOR ',') users
    FROM table
    GROUP BY MONTH(birthday), FORMAT(birthday, '%W %D')
    

    【讨论】:

    • 但这并没有带来所有的名字:s
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-02
    • 2015-07-07
    • 1970-01-01
    • 2015-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多