반응형
안녕하세요. 두번째로 최대값을 출력해보는 SQL을 작성해보겠습니다.
아래와 같은 테이블이 존재합니다.
1. SCORE의 최대값을 출력하여 보겠습니다.
1
|
SELECT MAX(SCORE) AS MAX_SCORE FROM TEST_RESULT;
|
cs |
2. SCORE의 두번째 최대값을 출력하여 보겠습니다.
방법 1) NOT IN 사용하기
1
2
3
|
SELECT MAX(SCORE) AS SECOND_MAX_SCORE
FROM TEST_RESULT
WHERE SCORE NOT IN 50;
|
cs |
방법 2) ROWNUM 사용하기
1
2
3
4
5
6
|
SELECT SECOND_MAX_SCORE
FROM (SELECT ROWNUM AS RN, SCORE
FROM(SELECT SCORE
FROM TEST_RESULT
ORDER BY SCORE DESC))
WHERE RN = 2;
|
cs |
결과는 최대값 50을 제외하고 가장 큰 수 인 40이 출력됩니다.
3. SCORE의 최대값을 제외한 나머지 행을 출력하여 보겠습니다.
방법 1) NOT IN 사용하기
1
2
3
4
|
SELECT SCORE AS SCORE
FROM TEST_RESULT
WHERE SCORE NOT IN 50
ORDER BY SCORE ASC;
|
cs |
방법 2) ROWNUM 사용하기
1
2
3
4
5
6
7
|
SELECT SCORE
FROM (SELECT ROWNUM AS RN, SCORE
FROM(SELECT SCORE
FROM TEST_RESULT
ORDER BY SCORE DESC))
WHERE RN > 1
ORDER BY SCORE ASC
|
cs |
결과는 최대값 50을 제외한 나머지 목록이 출력됩니다.
반응형
'코딩 기록 > ORACLE' 카테고리의 다른 글
[ORACLE] 컬럼추가/코멘트추가/컬럼순서변경 (0) | 2023.04.21 |
---|---|
[ORACLE] TOAD - 엑셀파일을 데이터로 변환하기 (0) | 2023.01.03 |
[ORACLE] CONNECT BY를 이용하여 임의의 데이터 생성하기 (0) | 2022.05.09 |
[SQL/ORACLE] - 기호로 구분하여 전화번호 저장하고 추출하기 (0) | 2021.10.14 |