2. 집약결과로 조건 분기
- UNION
SELECT EMP_NAME
, MAX(TEAM) AS TEAM
FROM Employees
GROUP BY EMP_NAME
HAVING COUNT(*) = 1
UNION
SELECT EMP_NAME
, '2개를 겸무' AS TEAM
FROM Employees
GROUP BY EMP_NAME
HAVING COUNT(*) = 2
UNION
SELECT EMP_NAME
, '3개 이상을 겸무' AS TEAM
FROM Employees
GROUP BY EMP_NAME
HAVING COUNT(*) >= 3 ;
- CASE
SELECT EMP_NAME,
CASE WHEN COUNT(*) =1 THEN MAX(TEAM)
WHEN COUNT(*) =2 THEN '2개를 겸무'
WHEN COUNT(*) >=3 THEN '3개 이상을 겸무'
END AS TEAM
FROM Employees
GROUP BY EMP_NAME
-> 11번에서 2번으로 비약적으로 향상됨
'Dev. Database > Oracle' 카테고리의 다른 글
DB연동 실패 NullPointerException (0) | 2018.05.04 |
---|---|
system 계정 비밀번호 분실과 계정 lock 해결법 (0) | 2017.10.29 |
집계와 조건 분기 - 1. 집계 대상으로 조건 분기 (0) | 2017.03.24 |
문자 및 날짜 기본 함수 (0) | 2016.12.04 |
[ORACLE] 테이블의 Primary Key Column 조회 Query 문 (0) | 2016.12.01 |