CertNote/ 출퇴근 학습 노트
로드맵
전체 실습
리눅스 셸
  • 숫자와 기호로 권한 바꾸고 umask 확인하기
  • 하드 링크와 심볼릭 링크 구분하기
  • 사용자를 만들고 그 사용자로 권한 거부 겪어 보기
  • 팀 공유 디렉터리 만들기: setgid 와 sticky bit
  • find 로 조건에 맞는 파일 찾고 한꺼번에 처리하기
  • grep 과 파이프로 /etc/passwd 읽기
  • chown·chgrp 로 프로젝트 소유권 넘기기
리눅스마스터 실기 대비
  • 권한·소유권 작업형 문제 7선
  • 계정·검색 작업형 문제 8선
SQL (SQLD)
  • SELECT·함수·WHERE 로 원하는 행 골라내기
  • GROUP BY·HAVING·조인으로 묶고 잇기
  • 서브쿼리·집합 연산·ROLLUP 으로 한 번에 묻고 묶기
  • 윈도우 함수·Top N·계층형 질의로 순위 매기고 나무 펼치기
  • PIVOT·정규 표현식·DML·트랜잭션으로 모양 바꾸고 데이터 고치기
AWS CLI
  • 리전과 가용 영역 지도 그리기
  • 서울 리전에 첫 버킷 만들기
  • 읽기 전용 사용자 만들고 정리하기

© CertNote · 주간랩스

  • 소개
  • 수정 기록
  • 문의
  • 이용약관
  • 개인정보처리방침
실습 목록
SQL S3 · SQL (SQLD)

서브쿼리·집합 연산·ROLLUP 으로 한 번에 묻고 묶기

서브쿼리와 ROLLUP 은 결과 행이 몇 개인지, 어떤 값이 나오는지를 머릿속으로만 세면 틀리기 쉽습니다. NOT IN 에 NULL 이 섞이면 결과가 0행이 되는 함정처럼, 직접 돌려 보면 한 번에 이해되는 동작이 많습니다.

같은 결과를 내면 서브쿼리 대신 조인이나 EXISTS 로 써도 정답입니다. ROLLUP 의 소계 행은 NULL 로 보이므로, 순서를 맞출 때 NULL 이 어디로 가는지도 함께 확인하세요.

과제 목록

  1. 전체 평균보다 많이 받는 사원
  2. 부서별 최고 급여자
  3. 사원이 없는 부서
  4. 부하 직원이 없는 사원
  5. 두 부서의 직무 합치기
  6. 부서별 소계와 총계
  7. 소계 행에 이름 붙이기

과제마다 SELECT 를 쓰고 실행하면 바로 채점합니다. 여러 문장을 ; 로 이어 써도 되고, 채점은 마지막 문장의 결과로 합니다. 막히면 힌트를 먼저 보고, 그래도 어려우면 모범 답안과 해설을 여세요. 날짜는 YYYY-MM-DD 로 보입니다(실제 Oracle 의 기본 표시는 환경 설정에 따라 다릅니다).

SQL S3SQL 실습장
서브쿼리·집합 연산·ROLLUP 으로 한 번에 묻고 묶기
0 / 7 과제 정답
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 / 7
전체 평균보다 많이 받는 사원

급여가 전체 사원 평균 급여보다 많은 사원의 이름과 급여를 급여가 높은 순(같으면 이름 순)으로 출력하시오.

Ctrl + Enter 로도 실행

함께 읽을 노트

  • 서브쿼리 기본
  • 그룹 함수 ROLLUP·CUBE
  • GROUPING SETS 와 GROUPING 함수
  • SQLD 전체 커리큘럼 (8주)