1

从这张表

D_值
--------
一个
乙
乙
C
C
C

D_Value在此表中显示计数

一个 | 乙| C
---------
1 | 2 | 3
4

2 回答 2

2

要获得单行,请使用它。

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。我还不会去那里...

于 2012-08-16T07:30:41.193 回答
0
select D_value,count(*) from table group by D_value;
于 2012-08-16T07:30:36.497 回答