2011-04-10 55 views
0

我有用戶及其生日的列表。我需要打印每個月的生日列表並按天分組。例如:按月分組生日結果

週一24(2):Herpina Derpina,李四

週二第27(1):尼古拉斯·凱奇

週五28(1):邁克爾·傑克遜

我怎麼能實現只需一個SQL調用?如果我以這種方式對他們進行分組,我將會丟失記錄:

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

任何想法? (我正在使用mysql + php)

回答

1

您無法獲得聚合函數的計數和相同查詢中的詳細記錄。如果名稱是必需的,那麼您將不得不手動構建PHP中的計數,然後以所需的格式顯示記錄。

+0

你是對的。我在PHP方面實現了一個解決方案。謝謝。 – andufo 2011-04-12 04:03:55

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

但這不會帶來所有的名字:s – andufo 2011-04-11 00:00:04