다음 SQL 의 실행 결과로 옳은 것은?[입고]입고번호창고수량1A502… | [SQLD] SQL 개발자 기출유형 모의고사 8회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 8회
다음 SQL 의 실행 결과로 옳은 것은?[입고]
| 입고번호 | 창고 | 수량 |
|---|---|---|
| 1 | A | 50 |
| 2 | A | 80 |
| 3 | A | 50 |
| 4 | A | 30 |
| 5 | B | 40 |
| 6 | B | 40 |
| 7 | B | 20 |
| 8 | C | 60 |
SELECT A.창고, A.입고번호, A.수량
FROM 입고 A
WHERE 2 > (SELECT COUNT(*)
FROM 입고 B
WHERE B.창고 = A.창고
AND B.수량 > A.수량)
ORDER BY A.창고, A.수량 DESC, A.입고번호;1
| 창고 | 입고번호 | 수량 |
|---|---|---|
| A | 2 | 80 |
| A | 1 | 50 |
| B | 5 | 40 |
| B | 6 | 40 |
| C | 8 | 60 |
2
| 창고 | 입고번호 | 수량 |
|---|---|---|
| A | 2 | 80 |
| A | 1 | 50 |
| A | 3 | 50 |
| B | 5 | 40 |
| B | 6 | 40 |
| B | 7 | 20 |
| C | 8 | 60 |
3
| 창고 | 입고번호 | 수량 |
|---|---|---|
| A | 2 | 80 |
| A | 1 | 50 |
| A | 3 | 50 |
| B | 5 | 40 |
| B | 6 | 40 |
| C | 8 | 60 |
4
| 창고 | 입고번호 | 수량 |
|---|---|---|
| A | 2 | 80 |
| B | 5 | 40 |
| B | 6 | 40 |
| C | 8 | 60 |
해설
바깥 행마다 같은 창고에서 자신의 수량을 넘는 행 수를 세는 연관 서브쿼리이므로, 그 수가 0 또는 1 인 행만 남아 동점을 포함한 상위 2위가 된다.
A 는 80(0건)·50 두 건(각 1건)이 남고 30(3건)은 빠지며, B 는 40 두 건(0건)이 남고 20(2건)은 빠져 C 의 60 까지 6행이다.
- 5행 결과는 창고별로 정확히 2행만 고른다고 본 경우로, A 의 동점 행이 빠졌다.
- B 의 20 이 포함된 결과는 비교를 2 이상으로 본 경우이다.
- 4행 결과는 1 > COUNT 처럼 1위만 남긴 경우이다.
오류나 개정된 내용이 보이면 알려주세요
이어서 풀어보기
[SQLD] SQL 개발자 기출유형 모의고사 8회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요비슷한 기출
- 다음sql결과에알맞는쿼리을작성하시오. selectname,scorefrom성적(1)by(2)(3) 1.order 2.score 3.desc2022년 정보처리기사실기 1회차
- 다음sql결과에알맞는답을작성하시오. [table] selectcount(col2) fromtable wherecol1in(2,3)orcol2in(3,5); 42022년 정보처리기사실기 2회차
- sql문에서괄호안에알맞은답안을작성하시오. ('이름'이란컬럼에'이'로시작하는문자열을'내림차순'하는쿼리결과내용입니다.) select....from...where이름l2021년 정보처리기사실기 2회차