SQL查询获取字段值分布

Bry*_*wis 2 sql pivot

我有一张超过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
.
.
Run Code Online (Sandbox Code Playgroud)

因此,它按subject_ID对数据进行分组,然后显示在该主题中给出特定分数值的次数.

任何生成这个的SQL指针都将非常感激.

Tho*_*mas 6

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
Run Code Online (Sandbox Code Playgroud)