다음 SQL 의 실행 결과로 옳은 것은?[출고]출고번호창고수량상태1A5… | [SQLD] SQL 개발자 기출유형 모의고사 8회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 8회
다음 SQL 의 실행 결과로 옳은 것은?[출고]
| 출고번호 | 창고 | 수량 | 상태 |
|---|---|---|---|
| 1 | A | 50 | 완료 |
| 2 | A | 70 | 취소 |
| 3 | A | 40 | 완료 |
| 4 | A | 30 | 완료 |
| 5 | B | 60 | 완료 |
| 6 | B | 20 | 완료 |
| 7 | B | 45 | 취소 |
SELECT 창고, 출고번호, 수량, RN
FROM (SELECT 창고, 출고번호, 수량, 상태,
ROW_NUMBER() OVER (PARTITION BY 창고
ORDER BY 수량 DESC) AS RN
FROM 출고) T
WHERE RN <= 2
AND 상태 = '완료'
ORDER BY 창고, RN;1
| 창고 | 출고번호 | 수량 | RN |
|---|---|---|---|
| A | 1 | 50 | 2 |
| B | 5 | 60 | 1 |
2
| 창고 | 출고번호 | 수량 | RN |
|---|---|---|---|
| A | 1 | 50 | 1 |
| B | 5 | 60 | 1 |
3
| 창고 | 출고번호 | 수량 | RN |
|---|---|---|---|
| A | 2 | 70 | 1 |
| A | 1 | 50 | 2 |
| B | 5 | 60 | 1 |
| B | 7 | 45 | 2 |
4
| 창고 | 출고번호 | 수량 | RN |
|---|---|---|---|
| A | 1 | 50 | 1 |
| A | 3 | 40 | 2 |
| B | 5 | 60 | 1 |
| B | 6 | 20 | 2 |
해설
ROW_NUMBER 는 인라인 뷰에서 취소 건까지 포함한 모든 행에 먼저 번호를 매기고, 바깥 WHERE 는 그 번호를 바꾸지 않고 행만 걸러낸다.
A 는 70(취소)이 RN 1, 50 이 RN 2 라 50 만 남고, B 는 60 이 RN 1, 45(취소)가 RN 2 라 60 만 남아 2행이다.
- 창고마다 완료 건 2행씩 나온 결과는 상태 조건을 인라인 뷰 안에 둔 경우이다.
- 취소 건이 포함된 결과는 상태 조건을 빼고 상위 2행을 고른 경우이다.
- A 의 RN 이 1 인 결과는 바깥 필터 뒤에 번호가 다시 매겨진다고 본 경우이다.
오류나 개정된 내용이 보이면 알려주세요
이어서 풀어보기
[SQLD] SQL 개발자 기출유형 모의고사 8회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요비슷한 기출
- 트랜잭션의상태중트랜잭션의수행이실패하여rollback연산을실행한상태는? {"answer":1,"content":[{"content":"철회(aborted22년-1회차-정보처리기사-필기
- 물리데이터저장소의파티션설계에서파티션유형으로옳지않은것은? {"answer":4,"content":[{"content":"범위분할(rangepartitio20년-3회차-정보처리기사-필기
- 체중조절을위하여식이요법을시행하는사람이매일식사의시간,종류,양과운동량을구체적으로기록하고있다면이는어떤행동관찰의방법인가? {"answer":1,"content18년-1회차-임상심리사2급-필기