오라클 Oracle 가장큰값, 두번째 큰값, 가장작은값, 두번째로 작은값 구하기 GREATEST, LEAST
오라클 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)) //두번째로 작은값 구하기
- 그럼 세번째로 큰값을 구한다면? (위의 예에서)
두번째로 큰값과 두번째로 작은 값 사이의 값을 구하면 된다.