如何返回特定值的多重计数

Mul*_*ner 5 mysql sum count

我有这样一张桌子:

id|category
Run Code Online (Sandbox Code Playgroud)

其中category是0到3之间的整数.如何计算每个类别中的行数.是否可以在单个查询中?

如果我有这些行,请使用Fx:

a|3
b|1
d|1
f|0
g|2
Run Code Online (Sandbox Code Playgroud)

结果应该是:

(1,2,1,1)
Run Code Online (Sandbox Code Playgroud)

即.1个类别= 0,2个类别= 1个等

Joe*_*lli 7

这将为每个类别提供一行.

SELECT category, COUNT(*) as catcount
    FROM YourTable
    GROUP BY category
Run Code Online (Sandbox Code Playgroud)

要以您指定的确切格式获得输出(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
Run Code Online (Sandbox Code Playgroud)