다음 결과를 얻기 위해 ㉠에 들어갈 함수로 옳은 것은? (DBMS 는 … | [SQLD] SQL 개발자 기출유형 모의고사 9회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 9회
다음 결과를 얻기 위해 ㉠에 들어갈 함수로 옳은 것은? (DBMS 는 DESC 정렬에서 NULL 을 맨 앞에 둔다)

[상영]

상영번호관이름관객수
1A관50
2A관40
3A관40
4A관20
5B관30
6B관(null)
7B관30
SELECT 관이름, 상영번호, 관객수,
       ( ㉠ ) OVER (PARTITION BY 관이름
                    ORDER BY 관객수 DESC) AS 순위
  FROM 상영
 ORDER BY 관이름, 순위, 상영번호;
관이름상영번호관객수순위
A관1501
A관2402
A관3402
A관4203
B관6(null)1
B관5302
B관7302
1
DENSE_RANK()
2
ROW_NUMBER()
3
RANK()
4
PERCENT_RANK()
해설

결과에서 A관은 1·2·2·3, B관은 1·2·2 로 동점은 같은 순위를 받고 다음 순위가 건너뛰지 않으므로 DENSE_RANK 이다.

B관은 DESC 정렬에서 NULL 이 맨 앞에 와 6번이 1위가 되고, 관객수 30 인 5·7번이 공동 2위가 된다.

  • RANK 는 동점 다음 순위를 건너뛰어 A관 20 이 4위가 된다.
  • ROW_NUMBER 는 동점에도 서로 다른 번호를 매겨 2·3 처럼 나뉜다.
  • PERCENT_RANK 는 0 과 1 사이의 비율 값을 돌려준다.

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

이어서 풀어보기

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