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은 관계없음. )
select t_rank, min(to_number(t_age)) from test_user group by t_rank having min(to_number(t_age)) > 5 order by case when t_rank = '주임' then '1' when t_rank = '대리' then '2' when t_rank = '과장' then '3' when t_rank = '부장' then '4' when t_rank = '이사' then '5' when t_rank = '사장' then '6' end asc;
SELECT CASE WHEN 제품 = ‘HP’ THEN 제품 WHEN 제품 = ‘LD’ THEN 등급 , WHEN 등급 = ‘P530C’ THEN 등급 ELSE ’기타‘ END , SUM(총매출), SUM(총수량)..... FROM 매출테이블 WHERE 매출일자 LIKE ’9808%’ GROUP BY CASE WHEN 제품 = ‘HP’ THEN 제품 WHEN 제품 = ‘LD’ THEN 등급 , WHEN 등급 = ‘P530C’ THEN 등급 ELSE ’기타‘ END