SQL S2 · SQL (SQLD)
GROUP BY·HAVING·조인으로 묶고 잇기
GROUP BY 와 조인은 SQLD 에서 결과 행 수와 값을 계산하게 하는 문항으로 많이 나옵니다. 외부 조인에서 COUNT(*) 와 COUNT(열)이 왜 다른지, HAVING 과 WHERE 가 어디서 갈리는지는 결과표를 직접 보면 오래 남습니다.
Oracle 식 (+) 조인과 ANSI JOIN 중 어느 쪽으로 써도 결과가 같으면 정답입니다. 오류가 나면 실제 Oracle 과 같은 ORA 번호와 문구가 나옵니다.
과제 목록
- 부서별 집계
- 묶음에 조건 걸기
- 집계와 NULL
- 부서 이름 붙이기
- 급여 등급 잇기
- 사원이 없는 부서도 보이기
- 관리자 이름 붙이기
- 조인한 뒤 묶기
과제마다 SELECT 를 쓰고 실행하면 바로 채점합니다. 여러 문장을 ; 로 이어 써도 되고, 채점은 마지막 문장의 결과로 합니다. 막히면 힌트를 먼저 보고, 그래도 어려우면 모범 답안과 해설을 여세요. 날짜는 YYYY-MM-DD 로 보입니다(실제 Oracle 의 기본 표시는 환경 설정에 따라 다릅니다).
SQL S2SQL 실습장
GROUP BY·HAVING·조인으로 묶고 잇기
0 / 8 과제 정답
Oracle 문법 · 실제 Oracle 결과와 대조
예제 테이블 보기: EMP · DEPT · SALGRADE펼치기
EMP · 14행
- EMPNONUMBER(4)
- ENAMEVARCHAR2(10)
- JOBVARCHAR2(9)
- MGRNUMBER(4)
- HIREDATEDATE
- SALNUMBER(7,2)
- COMMNUMBER(7,2)
- DEPTNONUMBER(2)
사원 14명. KING 은 관리자(MGR)가 없고, COMM 은 영업직만 있다(TURNER 는 0).
DEPT · 4행
- DEPTNONUMBER(2)
- DNAMEVARCHAR2(14)
- LOCVARCHAR2(13)
부서 4개. 40번 OPERATIONS 에는 사원이 없다.
SALGRADE · 5행
- GRADENUMBER
- LOSALNUMBER
- HISALNUMBER
급여 등급 5단계. EMP.SAL 이 LOSAL~HISAL 사이면 그 등급이다(Non-EQUI 조인 예제).
과제 1 / 8
부서별 집계
부서 번호별 사원 수와 평균 급여(소수 첫째 자리에서 반올림)를 부서 번호 순으로 출력하시오.
Ctrl + Enter 로도 실행