SQL:如何获得列中每个不同值的计数?
我有一个名为“职位”,看起来像这样的SQL表:
id | category ----------------------- 1 | 3 2 | 1 3 | 4 4 | 2 5 | 1 6 | 1 7 | 2
每个类别编号对应一个类别。 我将如何去计算每个类别出现在一个职位上所有在一个SQL查询的次数 ?
作为一个例子,这样的查询可能会返回一个符号数组,例如: (1:3, 2:2, 3:1, 4:1)
我目前的方法是使用每个可能的类别的查询,如: SELECT COUNT(*) AS num FROM posts WHERE category=#
,然后将返回值组合到最后一个数组。 但是,我正在寻找只使用一个查询的解决scheme。
SELECT category, COUNT(*) AS `num` FROM posts GROUP BY category