如何统计和分组

时间:2016-05-24 23:24:27

标签: sql count group-by

正如您在下面的图片中看到的,我需要计算每列上有多少个“1”,数字“1”表示受访者在家中感到安全(AP_4_01),工作场所(AP4_4_02)和等...... ..

2号=不安全

3号=不适用

9号=没有回答

+----------+----------------------+
| Columns  | Numbers of persons   |
+----------+----------------------+
| AP4_4_01 | 312                  |
| AP4_4_02 | 232                  |
| AP4_4_03 | 345                  |
| AP4_4_0X | XXX                  |
+----------+----------------------+

Table with the data

1 个答案:

答案 0 :(得分:2)

您只需要在某些案例陈述中使用SUM函数

SELECT 
    SUM(CASE WHEN AP_4_01 = 1 THEN 1 ELSE 0 END)
   ,SUM(CASE WHEN AP_4_02 = 1 THEN 1 ELSE 0 END)
   ...etc
FROM Table

要获得与问题中的结果集类似的结果集,您需要使用UNPIVOT函数,或者可以将其转换为excel。