SELECT SAL
FROM EMP;
SELECT SUM(SAL)
FROM EMP;
SUM 함수는 SELECT문으로 조회된 행에 지정한 열 값을 모두 더한 값을 반환해 주는 함수이다.
함수 | 설명 |
---|---|
SUM | 지정한 데이터의 합 반환 |
COUNT | 지정한 데이터의 개수 반환 |
MAX | 지정한 데이터 중 최댓값 반환 |
MIN | 지정한 데이터 중 최솟값 반환 |
AVG | 지정한 데이터의 평균값 반환 |
합계를 구하는 SUM함수
SUM([DISTINCT, ALL 중 하나를 선택하거나 아무 값도 지정하지 않음(선택)]
[합계를 구할 열이나 연산자, 함수를 사용한 데이터(필수)]) // 1.
번호 | 설명 |
---|---|
1. | 합계를 구할 데이터를 지정합니다. |
SUM함수를 분석하는 용도로 사용한다면 다음과 같이 함수를 작성한 후 OVER절을 사용할 수도 있다.
SUM([DISTINCT, ALL 중 하나를 선택하거나 아무 값도 지정하지 않음(선택)]
[합계를 구할 열이나 연산자, 함수를 사용한 데이터(필수)])
OVER(분석을 위한 여러 문법을 지정)(선택)
데이터 개수를 구해 주는 COUNT 함수
- COUNT 함수는 데이터 개수를 출력하는 데 사용한다.
COUNT([DISTINCT, ALL 중 하나를 선택하거나 아무 값도 지정하지 않음(선택)]
[개수를 구할 열이나 연산자, 함수를 사용한 데이터(필수)])
OVER(분석을 위한 여러 문법 지정)(선택) // 1.
번호 | 설명 |
---|---|
1. | 결과 행의 개수를 출렵합니다. |
SELECT *
FROM EMP;
SELECT COUNT(*)
FROM EMP;
최댓값과 최솟값을 구하는 MAX, MIN 함수
MAX 함수와 MIN 함수는 단어 의미 그대로 입력 데이터 중 최댓값과 최솟값을 반환하는 함수이다.
MAX([DISTINCT, ALL 중 하나를 선택하거나 아무 값도 지정하지 않음(선택)]
[최댓값을 구할 열이나 연산자, 함수를 사용한 데이터(필수)])
OVER(분석을 위한 여러 문법 지정)(선택) // 1.
번호 | 설명 |
---|---|
1. | 결과 행에서 최댓값을 출력합니다. |
MIN([DISTINCT, ALL 중 하나를 선택하거나 아무 값도 지정하지 않음(선택)]
[최솟값을 구할 열이나 연산자, 함수를 사용한 데이터(필수)])
OVER(분석을 위한 여러 문법을 지정)(선택) // 1.
번호 | 설명 |
---|---|
1. | 결과 행에서 최솟값을 출력합니다. |
평균 값을 구하는 AVG 함수
AVG 함수는 입력 데이터의 평균 값을 구하는 함수이다.
AVG([DISTINCT, ALL 중 하나를 선택하거나 아무 값도 지정하지 않음(선택)]
[평균 값을 구할 열이나 연산자, 함수를 사용한 데이터(필수)])
OVER(분석을 위한 여러 문법을 지정)(선택) // 1.
번호 | 설명 |
---|---|
1. | 결과 행의 평균 값을 반환합니다. |
GROUP BY절의 기본 사용법
SELECT문에서는 GROUP BY절을 작성하여 데이터를 그룹화할 수 있다.
SELECT [조회할 열1 이름], [열2 이름], ..., [열N 이름]
FROM [조회할 테이블 이름]
WHERE [조회할 행을 선별하는 조건식]
GROUP BY[그룹화할 열을 지정(여러 개 지정 가능)] // 1.
ORDER BY[정렬하려는 열 지정]
번호 | 키워드 | 필수 요소 | 선택 요소 | 설명 |
---|---|---|---|---|
1. | GROUP BY | 그룹화할 열 또는 데이터 지정 | - | 특정 열 또는 데이터를 기준으로 데이터를 그룹으로 묶습니다. |
GROUP BY절을 사용할 때 유의점
GROUP BY절을 사용하여 출력 데이터를 그룹화할 경우 유의해야 할 점이 있는데 바로 다중행 함수를 사용하지 않은 일반 열은 GROUP BY절에 명시하지 않으면 SELECT절에서 사용할 수 없다는 것이다.
SELECT ENAME, DEPTNO, AVG(SAL)
FROM EMP
GROUP BY DEPTNO;
HAVING절의 기본 사용법
SELECT [조회할 열1 이름], [열2 이름], ..., [열N 이름]
FROM [조회할 테이블 이름]
WHERE [조회할 행을 선별하는 조건식]
GROUP BY [그룹화할 열 지정(여러 개 지정 가능)]
HAVING[출력 그룹을 제한하는 조건식] // 1.
ORDER BY [정렬하려는 열 지정];
번호 | 키워드 | 필수 요소 | 선택 요소 | 설명 |
---|---|---|---|---|
1. | HAVING | 조건식 | - | GROUP BY절을 사용해 그룹화된 결과 중 출력 그룹을 선별하는 조건식을 지정합니다. |
HAVING절을 사용할 때 유의점
조건식을 지정한다는 점에서 HVING절이 WHERE절과 비슷하다고 생각할 수도 있다. 하지만 WHERE절은 출력 대상 행을 제한하고, HAVING절은 그룹화된 대상을 출력에서 제한하므로 쓰임새는 전혀 다르다.
WHERE절과 HAVING절의 차이점
- WHERE절을 사용하지 않고 HAVING절만 사용한 경우
- WHERE절과 HAVING절을 모두 사용한 경우
SELECT DEPTNO, JOB, AVG(SAL)
FROM EMP
GROUP BY DEPTNO, JOB
HAVING AVG(SAL) >= 2000
ORDER BY DEPTNO, JOB;
SELECT DEPTNO, JOB, AVG(SAL)
FROM EMP
WHERE SAL <= 3000
GROUP BY DEPTNO, JOB
HAVING AVG(SAL) >= 2000
ORDER BY DEPTNO, JOB;