DEPT, EMP 테이블에 대한 다음 질의문의 결과로 가장 적절한 것은… | [경찰간부후보생 데이터베이스론] 26년 1회차 기출문제 상세 페이지
1[경찰간부후보생 데이터베이스론] 26년 1회차
DEPT, EMP 테이블에 대한 다음 질의문의 결과로 가장 적절한 것은?
| <DEPT> | <EMP> | ||
| did | eid | did | |
| 10 | 1 | 10 | |
| 20 | 2 | 10 | |
| 30 | 3 | 20 | |
| 4 | NULL |
| SELECT D.did, COUNT(E.eid) AS cnt FROM DEPT AS D LEFT OUTER JOIN EMP AS E ON D.did = E.did GROUP BY D.did HAVING COUNT(E.eid) >= 1 ORDER BY D.did; |
1
| did | cnt | |
| 10 | 1 | |
| 20 | 1 | |
| 30 | 1 |
2
| did | cnt | |
| 10 | 2 | |
| 20 | 1 | |
3
| did | cnt | |
| 10 | 2 | |
| 20 | 1 | |
| 30 | NULL |
4
| did | cnt | |
| 10 | 2 | |
| 20 | 1 | |
| 30 | 0 |
해설
결과는 did 10의 cnt 2, did 20의 cnt 1의 두 행이다.
외부조인 후 did 10에는 사원 2명, did 20에는 1명이 연결되고, did 30은 E.eid가 NULL인 행 하나가 남아 COUNT(E.eid)가 0이다. HAVING 조건으로 cnt가 1 이상인 그룹만 남으므로 did 30은 제외된다. eid 4인 사원은 did가 NULL이어서 어느 부서와도 조인되지 않는다.
- 모든 부서의 cnt가 1인 결과: 부서 10의 사원 2명을 제대로 세지 못했고 did 30도 포함했다.
- did 30의 cnt가 NULL인 결과: COUNT는 NULL을 반환하지 않고 0을 반환하며, 해당 그룹은 제외된다.
- did 30의 cnt가 0인 결과: 집계값은 맞지만 HAVING 조건을 적용하지 않은 것이다.
오류나 개정된 내용이 보이면 알려주세요
이어서 풀어보기
[경찰간부후보생 데이터베이스론] 26년 1회차 40문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요비슷한 기출
- 다음sql결과에알맞는쿼리을작성하시오. selectname,scorefrom성적(1)by(2)(3) 1.order 2.score 3.desc2022년 정보처리기사실기 1회차
- 다음sql실행결과를숫자만쓰시오. selectcount(*)from급여 whereempno>100andsal>=3000orempno=200; 답:12021년 정보처리기사실기 1회차
- 다음sql결과에알맞는답을작성하시오. [table] selectcount(col2) fromtable wherecol1in(2,3)orcol2in(3,5); 42022년 정보처리기사실기 2회차