Oracle(12c 이상)에서 다음 SQL 을 실행한 결과로 옳은 것은… | [SQLD] SQL 개발자 기출유형 모의고사 3회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 3회
Oracle(12c 이상)에서 다음 SQL 을 실행한 결과로 옳은 것은?

[상품]

상품코드분류판매량
P1식품120
P2생활(null)
P3식품90
P4가전150
P5생활90
P6가전90
P7식품60
SELECT 상품코드, 판매량
  FROM (SELECT 상품코드, 판매량
          FROM 상품
         ORDER BY 판매량 DESC NULLS LAST
         FETCH FIRST 3 ROWS WITH TIES) T
 ORDER BY 판매량 DESC, 상품코드;
1
상품코드판매량
P390
P590
P690
P760
2
상품코드판매량
P2(null)
P4150
P1120
3
상품코드판매량
P4150
P1120
P390
P590
P690
4
상품코드판매량
P4150
P1120
P390
해설

WITH TIES 는 세 번째 행의 판매량 90 과 같은 값을 가진 행을 모두 함께 가져오므로 P4·P1 에 90 인 P3·P5·P6 이 더해져 5행이 된다.

NULLS LAST 로 판매량 NULL 인 P2 는 맨 뒤로 밀려 제외되고, 바깥 ORDER BY 가 동점 행을 상품코드 순으로 정렬한다.

  • 3행만 나온 표는 ROWS ONLY 처럼 동점 행을 버린 경우다.
  • P2 가 들어간 표는 NULLS LAST 를 무시하고 Oracle 기본 정렬을 적용한 경우다.
  • P7 이 들어간 표는 판매량을 오름차순으로 정렬해 뽑은 경우다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[SQLD] SQL 개발자 기출유형 모의고사 3회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요SQLD SQL 개발자 실전 모의고사 암기장 전체 보기