按月分组生日结果

时间:2011-04-10 22:02:33

标签: mysql date group-by

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

周一24日(2):Herpina Derpina,John Doe

周二27日(1):Nicolas Cage

周五28日(1):Michael Jackson

如何通过单个SQL调用实现这一目标?如果我按照这种方式对他们进行分组,我将失去记录:

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

有什么想法吗? (我正在使用mysql + php)

2 个答案:

答案 0 :(得分:1)

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')

答案 1 :(得分:1)

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