我有一个用户列表和他们的生日。我需要打印每个月的生日列表,并按天分组。例如:
周一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)
答案 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中手动构建计数,然后以所需格式显示记录。