我有一张这样的表:
id|category
其中category是0到3之间的整数。如何计算每个类别中的行数。是否可以在单个查询中使用?
F.X。如果我有这些行:
a|3
b|1
d|1
f|0
g|2
结果应该是:
(1,2,1,1)
即。 1个类别= 0,2个类别= 1等。
答案 0 :(得分:7)
这将为每个类别提供一行。
SELECT category, COUNT(*) as catcount
FROM YourTable
GROUP BY category
以您指定的确切格式(1行,4列)获取输出:
SELECT SUM(CASE WHEN category = 0 THEN 1 ELSE 0 END) AS cat0count,
SUM(CASE WHEN category = 1 THEN 1 ELSE 0 END) AS cat1count,
SUM(CASE WHEN category = 2 THEN 1 ELSE 0 END) AS cat2count,
SUM(CASE WHEN category = 3 THEN 1 ELSE 0 END) AS cat3count
FROM YourTable