从这张表
D_值 -------- 一个 乙 乙 C C C
D_Value
在此表中显示计数
一个 | 乙| C --------- 1 | 2 | 3
要获得单行,请使用它。
SELECT
COUNT(CASE WHEN D_Value = 'A' THEN 1 END) AS A,
COUNT(CASE WHEN D_Value = 'B' THEN 1 END) AS B,
COUNT(CASE WHEN D_Value = 'C' THEN 1 END) AS C
FROM
MyTable
这适用于要计数的有限且固定数量的值
如果你不知道有多少不同的值,那么你需要做一个简单的聚合并在客户端代码中做一行。
SELECT D_value, COUNT(*) FROM MyTable GROUP BY D_value;
但是,这不会为不存在的值提供零计数。所以你需要一个查找表和 LEFT JOIN。我还不会去那里...
select D_value,count(*) from table group by D_value;