我想使用查询来获得此结果:
Postid(20) ---> 4 type(0) et 2 type(1)
Postid(21) ---> 3 type(0) et 3 type(1).
从此表中:
id | userid | postid | type
1 | 465 | 20 | 0
2 | 465 | 21 | 1
3 | 466 | 20 | 1
4 | 466 | 21 | 0
5 | 467 | 20 | 0
6 | 467 | 21 | 0
7 | 468 | 20 | 1
8 | 468 | 21 | 1
9 | 469 | 20 | 0
10 | 469 | 21 | 1
11 | 470 | 20 | 0
12 | 470 | 21 | 0
我想我必须使用GROUP BY
,我尝试了但是没有结果。
如何实现这一结果?
答案 0 :(得分:0)
您需要在SELECT
部分中使用聚合函数以及要分组的列。
注意:任何与聚合函数一起选择的列必须出现在GROUP BY
部分。
以下代码应该回答您的问题:
SELECT COUNT(id), postid, type FROM table_name GROUP BY postid, type
使用多个GROUP BY
列时,具有所有这些共同列的条目将被分组,请参见此处:https://stackoverflow.com/a/2421441/9743294