我有一个包含超过 100 万条测试分数记录的表,这些记录基本上都有一个唯一的 Score_ID、一个 subject_ID 和一个人给出的分数。大多数科目的分数范围是 0-3,但有些科目的分数范围是 0-4。大约有 25 个可能的主题。
我需要生成一份分数分布报告,如下所示:
subject_ID 0 1 2 3 4
---------- --- --- --- --- ---
1 967 576 856 234
2 576 947 847 987 324
.
.
因此,它按 subject_ID 对数据进行分组,然后显示该主题内给出特定分数值的次数。
任何用于生成此内容的 SQL 指针将不胜感激。
最佳答案
Select subject_id
, Sum( Case When Score = 0 Then 1 Else 0 End ) As [0]
, Sum( Case When Score = 1 Then 1 Else 0 End ) As [1]
, Sum( Case When Score = 2 Then 1 Else 0 End ) As [2]
, Sum( Case When Score = 3 Then 1 Else 0 End ) As [3]
, Sum( Case When Score = 4 Then 1 Else 0 End ) As [4]
From Table
Group By subject_id
关于SQL查询获取字段值分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3057143/