D_value ------- A B B C C C
要显示计数D_Value
到这个表
A | B | C --------- 1 | 2 | 3
D_value ------- A B B C C C
要显示计数D_Value
到这个表
A | B | 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。我不会去那里...
谢谢。这是帮助。 :) – Jimmy428 2012-08-16 07:51:20
你期望有多少个不同的值? – gbn 2012-08-16 07:29:57
为什么不能用传统的方式来做(每行值,计数对):'选择D_value,通过D_value'从表组中计数(*)? – 2012-08-16 07:33:06