다음 SQL 의 실행 결과로 옳은 것은?[정회원]회원번호이름등급1한지우… | [SQLD] SQL 개발자 기출유형 모의고사 2회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 2회
다음 SQL 의 실행 결과로 옳은 것은?[정회원]
| 회원번호 | 이름 | 등급 |
|---|---|---|
| 1 | 한지우 | A |
| 2 | 서준호 | B |
| 3 | 윤채원 | A |
[준회원]
| 회원번호 | 이름 | 등급 |
|---|---|---|
| 11 | 서준호 | B |
| 12 | 강다은 | C |
| 13 | 윤채원 | B |
SELECT 이름 AS 성명, 등급 FROM 정회원 UNION SELECT 이름, 등급 FROM 준회원 ORDER BY 성명, 등급;
1
| 성명 | 등급 |
|---|---|
| 강다은 | C |
| 서준호 | B |
| 서준호 | B |
| 윤채원 | A |
| 윤채원 | B |
| 한지우 | A |
2
| 성명 | 등급 |
|---|---|
| 강다은 | C |
| 서준호 | B |
| 윤채원 | A |
| 윤채원 | B |
| 한지우 | A |
3
| 성명 | 등급 |
|---|---|
| 한지우 | A |
| 서준호 | B |
| 윤채원 | A |
| 강다은 | C |
| 윤채원 | B |
4
| 성명 | 등급 |
|---|---|
| 강다은 | C |
| 서준호 | B |
| 윤채원 | A |
| 한지우 | A |
해설
UNION은 이름과 등급이 모두 같은 행만 하나로 합치므로 서준호 B는 한 번, 등급이 다른 윤채원은 두 행으로 남아 5행이다.
결과 열 이름은 첫 SELECT의 별칭 성명을 따르고, 맨 끝 ORDER BY는 합쳐진 전체 결과를 정렬한다.
- 윤채원이 한 행인 표는 이름만으로 중복을 판단한 경우다.
- 정렬되지 않은 표는 ORDER BY가 마지막 SELECT에만 적용된다고 본 것이다.
- 서준호 B가 두 번인 표는 UNION ALL의 결과다.
오류나 개정된 내용이 보이면 알려주세요