데이터베이스 구축
핵심221
SELECT 2 - 일반 형식
출제 빈도
2회
원본 65~66쪽
| SELECT [PREDICATE] [테이블명.]속성명 [AS 별칭][, [테이블명.]속성명, …] [, 그룹함수(속성명) [AS 별칭]] [, WINDOW함수 OVER (PARTITION BY 속성명1, 속성명2, …ORDER BY 속성명3, 속성명4, …) [AS 별칭] ] FROM 테이블명[, 테이블명, …] [WHERE 조건] [GROUP BY 속성명, 속성명, …] [HAVING 조건] [ORDER BY 속성명 [ASC | DESC]]; |
|---|
그룹함수 : GROUP BY절에 지정된 그룹별로 속성의 값을 집계할 함수를 기술함
WINDOW 함수 : GROUP BY절을 이용하지 않고 속성의 값을 집계할 함수를 기술함- PARTITION BY : WINDOW 함수가 적용될 범위로 사용할 속성을 지정함
- ORDER BY : PARTITION 안에서 정렬 기준으로 사
용할 속성을 지정함
GROUP BY절 : 특정 속성을 기준으로 그룹화하여 검색할 때 사용함. 일반적으로 GROUP BY절은 그룹 함수와 함께 사용됨
HAVING절 : GROUP BY와 함께 사용되며, 그룹에 대한 조건을 지정함
<상여금>
| 부서 | 이름 | 상여내역 | 상여금 |
|---|---|---|---|
| 기획 | 홍길동 | 연장근무 | 100 |
| 기획 | 일지매 | 연장근무 | 100 |
| 기획 | 최준호 | 야간근무 | 120 |
| 기획 | 장길산 | 특별근무 | 90 |
| 인터넷 | 강건달 | 특별근무 | 90 |
| 인터넷 | 서국현 | 특별근무 | 90 |
| 인터넷 | 박인식 | 연장근무 | 30 |
| 편집 | 김선달 | 특별근무 | 80 |
| 편집 | 황종근 | 연장근무 | 40 |
| 편집 | 성춘향 | 야간근무 | 80 |
| 편집 | 임꺽정 | 야간근무 | 80 |
| 편집 | 황진이 | 야간근무 | 50 |
이 2명 이상인 ‘부서’의 튜플 수를 구하시오.
SELECT 부서, COUNT(*) AS 사원수
FROM 상여금WHERE 상여금 >= 100 GROUP BY 부서HAVING COUNT(*) >= 2;
<결과>
| 부서 | 사원수 |
|---|---|
| 기획 | 3 |