Oracle 기준으로 다음 SQL 의 실행 결과로 옳은 것은?[입원현황… | [SQLD] SQL 개발자 기출유형 모의고사 6회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 6회
Oracle 기준으로 다음 SQL 의 실행 결과로 옳은 것은?[입원현황]
| 입원번호 | 병동 | 등급 |
|---|---|---|
| 1 | A | 일반 |
| 2 | A | 일반 |
| 3 | A | (null) |
| 4 | B | 특실 |
| 5 | B | 일반 |
SELECT 병동, 등급, COUNT(*) AS 환자수,
GROUPING(등급) AS G
FROM 입원현황
GROUP BY GROUPING SETS ((병동, 등급), (병동))
ORDER BY 병동, G, 등급;1
| 병동 | 등급 | 환자수 | G |
|---|---|---|---|
| A | 일반 | 2 | 0 |
| A | (null) | 3 | 1 |
| B | 일반 | 1 | 0 |
| B | 특실 | 1 | 0 |
| B | (null) | 2 | 1 |
2
| 병동 | 등급 | 환자수 | G |
|---|---|---|---|
| A | 일반 | 2 | 0 |
| A | (null) | 1 | 0 |
| A | (null) | 3 | 1 |
| B | 일반 | 1 | 0 |
| B | 특실 | 1 | 0 |
| B | (null) | 2 | 1 |
| (null) | (null) | 5 | 1 |
3
| 병동 | 등급 | 환자수 | G |
|---|---|---|---|
| A | 일반 | 2 | 0 |
| A | (null) | 1 | 1 |
| A | (null) | 3 | 1 |
| B | 일반 | 1 | 0 |
| B | 특실 | 1 | 0 |
| B | (null) | 2 | 1 |
4
| 병동 | 등급 | 환자수 | G |
|---|---|---|---|
| A | 일반 | 2 | 0 |
| A | (null) | 1 | 0 |
| A | (null) | 3 | 1 |
| B | 일반 | 1 | 0 |
| B | 특실 | 1 | 0 |
| B | (null) | 2 | 1 |
해설
GROUPING SETS ((병동, 등급), (병동)) 은 병동·등급별 상세와 병동별 소계만 만들고 총계는 만들지 않으며, GROUPING(등급) 은 집계로 생긴 NULL 에만 1 이다.
입원번호 3 의 등급은 원래 NULL 이라 A·NULL·1 은 G 가 0 인 상세 행이고, A·NULL·3 과 B·NULL·2 가 G 가 1 인 소계 행이다.
- NULL 데이터 행의 G 를 1 로 본 결과는 원래 NULL 과 소계 NULL 을 구분하지 못한 것이다.
- 총계 행이 있는 결과는 ()가 없는 GROUPING SETS 에 총계를 더한 것이다.
- A·NULL·1 행이 빠진 결과는 NULL 등급이 그룹에서 빠진다고 오해한 것이다.
오류나 개정된 내용이 보이면 알려주세요
이어서 풀어보기
[SQLD] SQL 개발자 기출유형 모의고사 6회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요비슷한 기출
- sql문에서having을사용할수있는절은? {"answer":3,"content":[{"content":"like절","url":""},{"content21년-3회차-정보처리기사-필기
- sql문에서select에대한설명으로옳지않은것은? {"answer":2,"content":[{"content":"from절에는질의에의해검색될데이터들을포함21년-2회차-정보처리기사-필기
- 다음조건을만족하면서학과별로튜플수가얼마인지구하는sql문을작성하시오. -대소문자를구분하지않는다. -where구문을사용하지않는다. -groupby를사용한다. -세미콜론2020년 정보처리기사실기 4회차