다음 SQL 의 실행 결과로 옳은 것은?[수강생]학생번호이름1민준2서연… | [SQLD] SQL 개발자 기출유형 모의고사 7회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 7회
다음 SQL 의 실행 결과로 옳은 것은?[수강생]
| 학생번호 | 이름 |
|---|---|
| 1 | 민준 |
| 2 | 서연 |
| 3 | 지호 |
| 4 | 하은 |
[수강신청]
| 학생번호 | 강좌번호 | 점수 |
|---|---|---|
| 1 | 10 | 85 |
| 1 | 20 | 92 |
| 2 | 10 | (null) |
| 3 | 30 | 70 |
| 3 | 10 | (null) |
SELECT S.이름,
(SELECT COUNT(*) FROM 수강신청 R
WHERE R.학생번호 = S.학생번호) AS 신청수,
(SELECT MAX(R.점수) FROM 수강신청 R
WHERE R.학생번호 = S.학생번호) AS 최고점
FROM 수강생 S
ORDER BY S.학생번호;1
| 이름 | 신청수 | 최고점 |
|---|---|---|
| 민준 | 2 | 92 |
| 서연 | 1 | (null) |
| 지호 | 2 | 70 |
| 하은 | 0 | (null) |
2
| 이름 | 신청수 | 최고점 |
|---|---|---|
| 민준 | 2 | 92 |
| 서연 | 1 | (null) |
| 지호 | 2 | 70 |
3
| 이름 | 신청수 | 최고점 |
|---|---|---|
| 민준 | 2 | 92 |
| 서연 | 1 | (null) |
| 지호 | 2 | 70 |
| 하은 | (null) | (null) |
4
| 이름 | 신청수 | 최고점 |
|---|---|---|
| 민준 | 2 | 92 |
| 서연 | 0 | (null) |
| 지호 | 1 | 70 |
| 하은 | 0 | (null) |
해설
SELECT 절의 스칼라 서브쿼리는 수강생 한 행마다 한 값을 돌려주므로 4행이 모두 나오고, 신청이 없는 하은은 COUNT(*) 가 0, MAX 는 NULL 이다.
COUNT(*) 는 점수가 NULL 인 신청 행도 세므로 서연 1·지호 2 이고, MAX 는 NULL 을 빼고 계산해 서연은 NULL, 지호는 70 이다.
- 하은의 신청수를 NULL 로 본 표는 대상 행이 없을 때 COUNT 도 NULL 이라고 오해한 것이다.
- 하은이 빠진 표는 스칼라 서브쿼리를 내부 조인처럼 본 결과이다.
- 서연 0·지호 1 인 표는 COUNT(*) 를 COUNT(점수)처럼 NULL 을 빼고 센 결과이다.
오류나 개정된 내용이 보이면 알려주세요
이어서 풀어보기
[SQLD] SQL 개발자 기출유형 모의고사 7회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요비슷한 기출
- 다음sql결과에알맞는답을작성하시오. [table] selectcount(col2) fromtable wherecol1in(2,3)orcol2in(3,5); 42022년 정보처리기사실기 2회차
- sql문에서괄호안에알맞은답안을작성하시오. ('이름'이란컬럼에'이'로시작하는문자열을'내림차순'하는쿼리결과내용입니다.) select....from...where이름l2021년 정보처리기사실기 2회차
- 결과값이아래와같을때sql질의로옳은것은? <imgwidth="300"src= {"answer":1,"content":[{"content":"21년-1회차-정보처리기사-필기