2014-11-05 5 views
1

좋은 요약 테이블로 변환해야하는 설문 조사 데이터로 가득 찬 테이블이 있습니다. 설문 조사 질문은 (예를 들면) "순위에 따라 레스토랑 환경 설정"이었습니다. 같은 원시 데이터 보인다 : 나는 보이는 멋진 테이블에이를 설정해야합니다SQL 원시 데이터를 요약 테이블로 변환 하시겠습니까?

CUST_ID WENDYS_RANK MCDONALDS_RANK BURGERKING_RANK 
    1   First   Third   Second 
    2   Second   First   Third 
    3   None   First   Second 
    4   Second   Third   First 
(repeat for 100,000+ records) 

같은 :

NAME  NUM_FIRST  NUM_SECOND  NUM_THIRD 
Wendys  1    2     0 
McDonalds 2    0     2 
BK   1    2     1 

그러나 그것은이다 나는 단지 잊었이 같은 변화는 않았기 때문에 너무 이놈 오랫동안 SQL을 작성하는 방법,이 변환이 무엇인지 불리는 것을 잊어 버렸습니다. 누구든지 나를 도울 수 있습니까?

감사합니다 ... 여기

+0

사용중인 DBMS? 포스트그레스? 신탁? –

+0

나는 PIVOT을 어떤 식 으로든 사용해야한다고 생각한다. – Alex

답변

1

하나의 방법입니다 :

select 'Wendys', 
     sum(case when Wendys_Rank = 'First' then 1 else 0 end) as Rank1, 
     sum(case when Wendys_Rank = 'Second' then 1 else 0 end) as Rank2, 
     sum(case when Wendys_Rank = 'Third' then 1 else 0 end) as Rank3 
from surveydata 
union all 
select 'McDonalds', 
     sum(case when McDonalds_Rank = 'First' then 1 else 0 end) as Rank1, 
     sum(case when McDonalds_Rank = 'Second' then 1 else 0 end) as Rank2, 
     sum(case when McDonalds_Rank = 'Third' then 1 else 0 end) as Rank3 
from surveydata 
union all 
select 'BK', 
     sum(case when BK_Rank = 'First' then 1 else 0 end) as Rank1, 
     sum(case when BK_Rank = 'Second' then 1 else 0 end) as Rank2, 
     sum(case when BK_Rank = 'Third' then 1 else 0 end) as Rank3 
from surveydata; 
+0

정확히 내가 필요한 것! 정말 고맙습니다! – user3120173

관련 문제