오라클 Oracle 가장큰값, 두번째 큰값, 가장작은값, 두번째로 작은값 구하기 GREATEST, LEAST
컬럼 내에서 가장 큰 값과 작은 값은 MAX(), MIN()을 사용하면 된다.
하지만 다른 컬럼 중에서 크기나 순위를 정하기 위해서는 GREATEST(), LEAST()를 사용한다.
- GREATEST 사용법
GREATEST(col1, col2, col3, col4, ...)
ex) GREATEST(OVERSPD_SUM, QUICK_ACCEL_SUM, QUICK_DECEL_SUM, QUICK_TURN_SUM)
- LEAST 사용법
LEAST(col1, col2, col3, col4,...)
ex) LEAST(OVERSPD_SUM, QUICK_ACCEL_SUM, QUICK_DECEL_SUM, QUICK_TURN_SUM, QUICK_JINO_SUM)
그럼 두번째로 큰 값과 두번째로 작은 값은 어떻게 구할까?
두번째로 큰 수는 한 컬럼씩 빼가면서 가장 큰 값들 중 가장 작은 값을 구하면 된다.
반대로 두번째로 작은 수는 한 컬럼씩 빼가면서 가장 작은 값들 중 가장 큰 값을 구하면 된다
[col1, col2, col3, col4, col5] 값중에 구한다면
- 두번째로 큰 값 구하기
LEAST(GREATEST(col1, col2, col3, col4),
GREATEST(col1, col2, col3, col5),
GREATEST(col1, col2, col4, col5),
GREATEST(col1, col3, col4, col5),
GREATEST(col2, col3, col4, col5)) //두번째로 큰값 구하기
- 두번째로 작은 값 구하기
GREATEST(LEAST(col1, col2, col3, col4),
LEAST(col1, col2, col3, col5),
LEAST(col1, col2, col4, col5),
LEAST(col1, col3, col4, col5),
LEAST(col2, col3, col4, col5)) //두번째로 작은값 구하기
- 그럼 세번째로 큰값을 구한다면? (위의 예에서)
두번째로 큰값과 두번째로 작은 값 사이의 값을 구하면 된다.
'Database > SQL' 카테고리의 다른 글
오라클 부분 조회, 페이징 처리, ROW_NUMBER(), ROWNUM, 원하는 행 조회 (0) | 2016.01.14 |
---|---|
Oracle 오라클 KEEP()함수 사용법 그룹함수로 조회한 행 중에 다른 컬럼 가져오는 방법 (0) | 2015.12.22 |
ORACLE LISTAGG 여러 행을 하나의 컬럼으로 가져오기 (0) | 2015.08.19 |
ORACLE MERGE 조건에 따라 INSERT, UPDATE (0) | 2015.08.19 |
오라클 두 테이블의 컬럼에서 같은 값 확인 ORACLE DECODE 활용 (0) | 2015.08.05 |
댓글