我想創建一些關於我的用戶的統計信息。從一個查詢中的一個表中總結不同的值
我想根據他們的年齡段對他們進行分組,並根據他們的性別進行總結。所以最終我得到一個表是這樣的:
age | male | female | total
0-18 | 2 | 1 | 3
18-25 | 3 | 4 | 7
25-100 | 13 | 25 | 38
total | 18 | 30 | 48
(順便說一句,這些都是例子區間。)
了RightNow我做到這一點通過運行該查詢的每一行:
SELECT
SUM(IF(gender = 'male', 1,0)) AS `male`,
SUM(IF(gender = 'female', 1,0)) AS `female`,
COUNT(gender) AS `total`
FROM `users`
WHERE
`birthday`
BETWEEN
DATE_SUB(CURDATE(), INTERVAL 25 YEAR)
AND
DATE_SUB(CURDATE(), INTERVAL 18 YEAR)
和總結結果由我的PHP腳本創建最後一個總排
我怎麼能結合所有這些查詢來提高性能,也許還創建了通過mysql的最後一條線。
我想使用的間隔是:
0-18
18-25
25-31
31-36
36-41
41-46
46-51
51-56
56-61
61-100
編輯: 這裏是一個表的轉儲一些樣本數據來測試它http://pastebin.com/ytcuu2ge
你能給樣品記錄嗎? – 2013-04-07 04:38:29
剛剛通過示例轉儲添加了一個指向我的問題的鏈接 – 2013-04-07 04:48:07
您是否也可以在表中添加間隔,例如'interval_id','from'和'to'列? – 2013-04-07 05:03:30