Aggregate Functions
데이터를 조회할 때 집계 함수는 여러 개의 row를 집계하여 하나의 결과를 나타낼 때 사용한다.
기본적인 집계 함수로는 AVG(평균값), MIN(최솟값), MAX(최댓값), SUM(합), COUNT(갯수) 등이 있다.
그리고 여러 개의 그룹으로 나누어 집계할 때 사용되는 GROUP BY 키워드와,
집계 함수의 결과를 통해 조건을 설정할 때 사용하는 HAVING 키워드가 있다.
AVG
AVG 키워드는 한 속성에 해당하는 값들의 평균값을 계산할 때 사용한다.
SELECT AVG(salary) FROM instructor WHERE dept_name='Comp.Sci.'
예를 들어, 위 SQL은 컴퓨터공학과 교수들의 연봉 평균을 구하는 SQL이다.
MIN
MIN 키워드는 한 속성에 해당하는 값들의 최소값을 구할 때 사용한다.
SELECT MIN(salary) FROM instructor WHERE dept_name='Comp.Sci.'
예를 들어, 위 SQL은 컴퓨터공학과 교수들의 연봉 중 가장 낮은 연봉을 구하는 SQL이다.
MAX
MAX 키워드는 한 속성에 해당하는 값들의 최댓값을 구할 때 사용한다.
SELECT MAX(salary) FROM instructor WHERE dept_name='Comp.Sci.'
예를 들어, 위 SQL은 컴퓨터공학과 교수들의 연봉 중 가장 높은 연봉을 구하는 SQL이다.
SUM
SUM 키워드는 한 속성에 해당하는 값들의 합을 구할 때 사용한다.
SELECT SUM(salary) FROM instructor WHERE dept_name='Comp.Sci.'
예를 들어, 위 SQL은 컴퓨터공학과 교수들의 연봉의 합을 구하는 SQL이다.
COUNT
COUNT 키워드는 해당 속성에 해당하는 값들의 갯수를 구할 때 사용한다.
SELECT COUNT(DISTINCT id) FROM instructor WHERE dept_name='Comp.Sci.'
예를 들어, 위 SQL은 컴퓨터공학과 교수들의 수를 구하는 SQL이다.
SELECT COUNT(*) FROM instructor
또는 위와 같이 속성이 아닌 *을 넣어 테이블의 row 갯수를 쉽게 구할 수도 있다.
GROUP BY
GROUP BY 키워드는 여러 개의 그룹으로 row들을 나누어 집계할 때 사용한다.
SELECT dept_name, AVG(salary) AS avg_salary
FROM instructor
GROUP BY dept_name
예를 들어, 위 SQL은 교수들을 학과별로 묶어 평균 연봉을 avg_salary 라는 속성으로 나타내는 SQL이다.
HAVING
HAVING 키워드는 집계 함수를 통해 계산한 결과를 조건으로 사용할 때 사용한다.
SELECT dept_name, AVG(salary)
FROM instructor
GROUP BY dept_name
HAVING AVG(salary)>42000
위 SQL은 마찬가지로 학과별 교수들의 평균 연봉을 구하지만, 평균 연봉이 42000 이상인 학과만 나타내게 된다.
'Computer Science > Database' 카테고리의 다른 글
[SQL] SOME, ALL, EXISTS, NOT EXISTS, UNIQUE, WITH (1) | 2020.06.16 |
---|---|
[SQL] Subquery, Scalar Subquery, Inline View (0) | 2020.06.16 |
[SQL] OR, AND, NOT, IN, IS NULL (0) | 2020.06.15 |
[SQL] UNION, INTERSECT, EXCEPT (0) | 2020.06.15 |
[SQL] SELECT, AS, LIKE, ORDER BY (0) | 2020.06.12 |