통계 관련 쿼리를 짜야 하는데 조금 막혀서 질문드립니다.ㅠ 0 4 1,406

by zumsim [2022.10.13 13:43:01]


안녕하세요 통계 쿼리를 짜다가 조금 막혀서 질문드려요..

구분 서울 부산 대구 인천 광주 대전
신청            
승인            
졸업            

위와 같은 형태로 화면에 출력되고 

 

실제 db 데이터는

유저아이디 지역코드 학교급 구분값(신청,승인,졸업)

이런 식으로 들어가있습니다.

학교급도 지역별로 나눠서 표기해야하는데 예시로 작성하기가 어려워 우선은 지역으로만 질문드립니다.

피벗을 사용해볼수 있을까 하다가 거기서도 막혀서

한줄한줄 서브쿼리로 짜놨더니 화면, 데이터는 잘 나오는데 너무 느려서..바꿔볼까합니다.

팁이나 키워드만 알려주시면 제가 찾아서 해보겠습니다 ㅜ

by pajama [2022.10.13 15:46:31]

pivot이나 sum case 사용하시면 될듯합니다~

select * from (select user_id, region_cd, typ from t)
pivot ( count(user_id) for region_cd in
         ('001' as 서울, '002' as 부산, '003' as 대구, '004' as 인천, '005' as 광주, '006' as 대전))

 

select typ,
       sum(case when region_cd = '001' then 1 else 0 end) 서울,
	   sum(case when region_cd = '002' then 1 else 0 end) 부산,
	   sum(case when region_cd = '003' then 1 else 0 end) 대구,
	   sum(case when region_cd = '004' then 1 else 0 end) 인천,
	   sum(case when region_cd = '005' then 1 else 0 end) 광주,
	   sum(case when region_cd = '006' then 1 else 0 end) 대전
from t
group by typ

 


by zumsim [2022.10.13 16:09:03]

한번 사용하여 해보겠습니다 

감사합니다!


by 마농 [2022.10.13 15:52:39]

비어있는 표만 그리지 마시고 안에 데이터도 예시로 채워 주세요.


by zumsim [2022.10.13 16:04:51]

빈 칸안에 들어가는 값은 USRID 총 카운팅 값입니다!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입