SELECT
CASE WHEN 나이 >= 1 AND 나이 < 20 THEN '20미만'
WHEN 나이 >= 20 AND 나이 < 30 THEN '30미만'
WHEN 나이 >= 30 AND 나이 < 40 THEN '40미만' END AS 나이
, NVL(SUM(CASE WHEN 색상명 = '감색' THEN 판매수량 END), 0) AS 감색
, NVL(SUM(CASE WHEN 색상명 = '노랑색' THEN 판매수량 END), 0) AS 노랑색
, NVL(SUM(CASE WHEN 색상명 = '파랑색' THEN 판매수량 END), 0) AS 파랑색
FROM 입력
GROUP BY
CASE WHEN 나이 >= 1 AND 나이 < 20 THEN '20미만'
WHEN 나이 >= 20 AND 나이 < 30 THEN '30미만'
WHEN 나이 >= 30 AND 나이 < 40 THEN '40미만' END
위의 구분 이외에 더 조건이 들어간다면 조건에 맞춰 CASE WHEN을 추가하면 됩니다.
단, SELECT LIST 굵은글씨 부분의 CASE WHEN을 추가하면 반드시 Group by아래의 CASE WHEN도 같이 맞춰 주어야 합니다. ( SUM내부의 CASE WHEN은 관계없음. )
'SQL' 카테고리의 다른 글
[MSSQL]분석함수 정리 partition by, rank() over, row_number() over, dense_rank() over (0) | 2012.11.18 |
---|---|
[MSSQL] mssql ROW_NUMBER() OVER() / ROW_NUMBER() (0) | 2012.11.18 |
[MSSQL]MSSQL ROW COUNT 쉽게 알아내기 (0) | 2012.11.17 |
[MSSQL] 데이터베이스에서 이메일 보내기 (0) | 2012.11.08 |
[MSSQL] string 문자열 함수 & 날짜및 시간함수 정리 (0) | 2012.11.08 |