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
'개발 및 관리 > Oracle 9i, 10g, 11g, 12c, 19c' 카테고리의 다른 글
[sqlplus] shutdown immediate VS [os상] svrctl (0) | 2022.03.12 |
---|---|
SQL 우선순위 (0) | 2022.03.10 |
ORACLE 운영 관련 View (0) | 2022.02.15 |
Oracle DB 점검 (0) | 2022.02.15 |
Oracle RAC 기동 및 종료 의미 (0) | 2022.02.15 |