Database/SQL

오라클 Oracle 가장큰값, 두번째 큰값, 가장작은값, 두번째로 작은값 구하기 GREATEST, LEAST

리커니 2015. 11. 25.
반응형

 

오라클 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))  //두번째로 작은값  구하기

 

- 그럼 세번째로 큰값을 구한다면? (위의 예에서)

두번째로 큰값과  두번째로 작은 값 사이의 값을 구하면 된다.

 

반응형

댓글

💲 추천 글