SQL - 使用GROUP BY进行查询?

时间:2018-05-07 18:18:05

标签: mysqli pdo

我想使用查询来获得此结果:

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,我尝试了但是没有结果。

如何实现这一结果?

1 个答案:

答案 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