Oracle 에서 관객수 2~3위 영화를 구하려 한다. 의도한 두 행을… | [SQLD] SQL 개발자 기출유형 모의고사 9회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 9회
Oracle 에서 관객수 2~3위 영화를 구하려 한다. 의도한 두 행을 정확히 돌려주는 SQL 은? (관객수에 NULL·동점은 없다)[영화]
| 제목 | 관객수 |
|---|---|
| 파도 | 900 |
| 정원 | 700 |
| 추적 | 800 |
| 별빛 | 500 |
| 노을 | 600 |
㉠ SELECT 제목, 관객수
FROM (SELECT 제목, 관객수 FROM 영화
ORDER BY 관객수 DESC)
WHERE ROWNUM BETWEEN 2 AND 3;
㉡ SELECT 제목, 관객수
FROM 영화
WHERE ROWNUM <= 3 AND ROWNUM >= 2
ORDER BY 관객수 DESC;
㉢ SELECT 제목, 관객수
FROM (SELECT ROWNUM AS RN, A.*
FROM (SELECT 제목, 관객수 FROM 영화
ORDER BY 관객수 DESC) A)
WHERE RN BETWEEN 2 AND 3;
㉣ SELECT ROWNUM AS RN, 제목, 관객수
FROM (SELECT 제목, 관객수 FROM 영화
ORDER BY 관객수 DESC)
WHERE RN BETWEEN 2 AND 3;1
㉠
2
㉡
3
㉣
4
㉢
해설
ROWNUM 은 조건을 통과한 행에 1부터 차례로 붙으므로 첫 행이 1 이 되지 못하면 다음 행도 1 이 되어
ROWNUM >= 2류 조건은 0건이 된다.㉢처럼 정렬한 인라인 뷰에 ROWNUM 을 별칭 RN 으로 고정한 뒤 바깥에서 RN 범위를 걸어야 추적·정원 두 행이 나온다.
- ㉠은 ROWNUM BETWEEN 2 AND 3 이라 첫 행부터 탈락해 결과가 없다.
- ㉡도 ROWNUM >= 2 를 만족하는 행이 없고 정렬도 번호 부여 뒤에 일어난다.
- ㉣은 같은 쿼리 블록의 WHERE 에서 SELECT 별칭 RN 을 쓸 수 없어 오류가 난다.
오류나 개정된 내용이 보이면 알려주세요
이어서 풀어보기
[SQLD] SQL 개발자 기출유형 모의고사 9회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요비슷한 기출
- 다음sql결과에알맞는쿼리을작성하시오. selectname,scorefrom성적(1)by(2)(3) 1.order 2.score 3.desc2022년 정보처리기사실기 1회차
- sql문에서괄호안에알맞은답안을작성하시오. ('이름'이란컬럼에'이'로시작하는문자열을'내림차순'하는쿼리결과내용입니다.) select....from...where이름l2021년 정보처리기사실기 2회차
- 다음sql결과에알맞는답을작성하시오. [table] selectcount(col2) fromtable wherecol1in(2,3)orcol2in(3,5); 42022년 정보처리기사실기 2회차