group by查詢旨在把某字段中相同的記錄合並成一列,查詢結果可受count(),sum()等統計函數影響
如下表
id | totalclick | validclick |
1 | 3 | 1 |
2 | 3 | 1 |
3 | 5 | 2 |
4 | 2 | 1 |
5 | 3 | 1 |
6 | 5 | 2 |
以validclick為分組,統計每個分組的記錄數,和每個分組的totalclick總和
SELECT count(`id`),sum(`totalclick`), validclick FROM diary_log GROUP BY validclick;
結果:
count(`id`) | sum(`totalclick`) | validclick |
4 | 11 | 1 |
2 | 10 | 2 |
配合if,可以模擬count()統計每個分組的記錄數
SELECT count(`id`), sum(if(validclick = 1,1,0)) validclick_1,sum(if(validclick = 2,1,0)) validclick_2,validclick FROM diary_log GROUP BY validclick;
結果:
count(`id`) | validclick_1 | validclick_2 | validclick |
4 | 4 | 0 | 1 |
2 | 0 | 2 | 2 |