일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Eclipse
- 변수
- select
- ANSI JOIN
- Algorithm
- 데이터길이
- 오라클
- SQL
- JOIN
- Dynamic Programming
- DP
- 동적계획법
- Database
- 입출력
- 문자열
- n x 2 타일링 2
- algoritm
- 10951
- 백준
- darkest dark
- 반복문
- 2156
- oracle
- Java
- db
- 알고리즘
- 자바
- 데이터베이스
- 소숫점처리
- 그대로 출력하기
Archives
- Today
- Total
Cracking Code
SQL - GROUP BY, HAVING 본문
어떤 컬럼을 기준으로 그룹으로 묶어서 데이터 값들을 출력할 수 있도록 도와주는
GROUP BY 절에 대해서 알아보겠습니다.
1. GROUP BY
SELECT [column], group_function(column)
FROM table
[WHERE 조건식]
[GROUP BY column]
[ORDER BY column]
전체 테이블이 아닌 특정 그룹으로 묶을 때 GROUP BY 함수를 통해 출력할 수 있습니다.
그룹 함수는 GROUP BY 없이 일반 컬럼과 함께 출력할 수 없습니다.
그룹으로 묶을 컬럼은 반드시 SELECT 절에도 존재해야합니다!
부서 번호를 그룹화하여 각 그룹의 SAL 평균을 출력해볼까요?
SELECT DEPTNO, AVG(SAL)
FROM EMP
GROUP BY DEPTNO;
부서 번호별로 평균 SAL을 출력하는 모습을 볼 수 있습니다.
2. HAVING
SELECT [column], group_function(column)
FROM table
[WHERE 조건식]
[GROUP BY column]
[HAVING 조건식]
[ORDER BY column]
GROUP BY 절에 의해 분류된 그룹에 조건식을 적용할 때 사용합니다.
참고) 질의문의 실행 순서는 아래와 같습니다.
1. FROM
2. WHERE
3. GROUP BY
4. HAVING
5. SELECT
6. ORDER
사원 테이블에서 급여 평균이 3000 이상인 직업에 대해 직업, 급여 평균, 급여의 합을 출력해봅시다.
SELECT JOB, AVG(SAL), SUM(SAL)
FROM EMP
GROUP BY JOB
HAVING AVG(SAL) >= 3000;
급여 평균이 3000 이상인 직군이 출력되는 것을 볼 수 있습니다.
'Database' 카테고리의 다른 글
SQL - JOIN (ANSI) (0) | 2020.07.19 |
---|---|
SQL - JOIN (ORACLE) (0) | 2020.07.19 |
SQL - SUM, AVG, MAX, MIN, COUNT (0) | 2020.07.19 |
SQL - DECODE (0) | 2020.07.19 |
SQL - CASE (0) | 2020.07.19 |
Comments