728x90
GROUP BY 란?
1. 테이블의 데이터를 특정 컬럼을 기준으로 동일한 값을 가진 행끼리 그룹으로 묶어 단위를 생성
2. GROUP BY절에 여러 컬럼이 오는 경우 해당 컬럼의 모든 값이 일치한 경우 동일한 그룹으로 묶어서 그룹을 만들게 된다.
3. GROUP BY절에 사용된 컬럼은 무조건 SELECT절에 사용할 필요는 없다. GROUP BY절을 사용한 경우 SELECT절에는 그룹함수와 GROUP BY절의 기준 컬럼만 작성이 가능해진다.
1
2
3
4
5
|
SELECT department_id, job_id, SUM(salary), COUNT(*)
FROM employees
WHERE department_id > 40
GROUP BY department_id, job_id
ORDER BY department_id;
|
cs |
HAVING 이란?
1. GROUP BY절에 의해서 만들어진 그룹들 중 결과로 출력을 원하는 그룹의 조건을 설정하는 절
2. HAVING절의 조건은 일반 컬럼이 아닌 그룹 함수를 사용해서 조건을 만든다.
1
2
3
4
5
6
|
SELECT job_id, SUM(salary) payroll
FROM employees
WHERE job_id NOT LIKE '%REP%'
GROUP BY job_id
HAVING SUM(salary) > 13000
ORDER BY SUM(salary);
|
cs |
'DBMS > SQL' 카테고리의 다른 글
[SQL] SELF JOIN (0) | 2023.01.23 |
---|---|
[SQL] JOIN 연결 (INNER, OUTER, LEFT, RIGHT) (0) | 2023.01.22 |
[SQL] ORDER BY 정렬 (0) | 2023.01.20 |
[SQL] 3.WHERE 조건 절, IS NULL, IS NOT NULL, NOT, AND/OR (1) | 2023.01.19 |
[SQL] 2.WHERE 조건 절, BETWEEN, IN, LIKE (0) | 2023.01.18 |