과목 II SQL 기본 및 활용

제1장 SQL 기본

제7절 GROUP BY, HAVING 절

5. 집계 함수와 NULL

 

 

[예제] 팀별 포지션별 FW, MF, DF, GK 포지션의 인원수와 팀별 전체 인원수를 구하는 SQL 문장을 작성한다. 데이터가 없는 경우는 0으로 표시한다.

 SELECT TEAM_ID,

              ISNULL(SUM(CASE WHEN POSITION = 'FW' THEN 1 END), 0) FW,

              ISNULL(SUM(CASE WHEN POSITION = 'MF' THEN 1 END), 0) MF,

              ISNULL(SUM(CASE WHEN POSITION = 'DF' THEN 1 END), 0) DF,

              ISNULL(SUM(CASE WHEN POSITION = 'GK' THEN 1 END), 0) GK,

              COUNT(*) SUM

 FROM PLAYER

 GROUP BY TEAM_ID;

 

 

[실행결과] 

경고: 집계 또는 다른 SET 작업에 의해 Null 값이 제거되었습니다.

(15개 행이 영향을 받음)

 


 

 

[예제] GROUP BY 절 없이 전체 선수들의 포지션별 평균 키 및 전체 평균 키를 출력할 수도 있다.

 SELECT ROUND(AVG(CASE WHEN POSITION = 'MF' THEN HEIGHT END),2) 미드필더,

              ROUND(AVG(CASE WHEN POSITION = 'FW' THEN HEIGHT END),2) 포워드,

              ROUND(AVG(CASE WHEN POSITION = 'DF' THEN HEIGHT END),2) 디펜더,

              ROUND(AVG(CASE WHEN POSITION = 'GK' THEN HEIGHT END),2) 골키퍼,

              ROUND(AVG(HEIGHT),2) 전체평균키

 FROM PLAYER;

 

 

[실행결과]

경고: 집계 또는 다른 SET 작업에 의해 Null 값이 제거되었습니다.

(1개 행이 영향을 받음)

 

'SQL 전문가 가이드' 카테고리의 다른 글

SELECT 문장 실행 순서  (0) 2013.10.08
ORDER BY 정렬  (0) 2013.10.07
CASE 표현을 활용한 월별 데이터 집계  (0) 2013.10.01
HAVING 절  (0) 2013.09.30
GROUP BY 절  (0) 2013.09.30
Posted by G4.
,