2010-06-16 4 views
2

기본적으로 유일한 score_ID, subject_ID 및 사람이 부여한 점수가있는 1 백만개 이상의 테스트 점수 레코드가있는 테이블이 있습니다. 대부분의 과목에서 점수 범위는 0-3이지만 일부는 0-4 범위입니다. 가능한 주제는 약 25 가지입니다. 그래서 그룹 subject_ID에 의해 데이터가 다음 특정 점수 값을 해당 과목 내에서 주어진 된 횟수를 보여줍니다필드 값 분포를 얻기위한 SQL 쿼리

subject_ID  0 1 2 3 4 
---------- --- --- --- --- --- 
1    967 576 856 234 
2    576 947 847 987 324 
. 
. 

:

나는처럼 보이는 점수 분포 보고서를 작성해야합니다.

모든 SQL 포인터를 생성하려면 크게 감사하겠습니다.

답변

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 
+0

완벽합니다. Case 문을 사용하는 것이 관련 있다고 생각했습니다. –