여러 컬럼 혹은 테이블 전체의 컬럼으로부터 하나의 결과값을 반환해주는 함수

총 개수를 계산해주는 함수
Select COUNT(컬럼명)
from 테이블명
where 조건;
실습 문제
crime_status 테이블에서 경찰서는 총 몇 군데인지 알아보세요.
결과 :

숫자 컬럼의 합계를 구해주는 함수
실습 문제
crime_status 테이블에서 범죄 총 발생 건수가 얼마인지 계산해보세요.
결과 :

실습 문제
중부 경찰서에서 검거된 총 범죄 건수는?
결과 :

실습 문제
종로 경찰서와 남대문 경찰서의 강도 발생 건수의 합을 구하세요.
결과 :

숫자 컬럼의 평균을 구해주는 함수
Select Avg(컬럼명)
from 테이블명
where 조건;
숫자 컬럼 중 가장 작은 값을 찾아주는 함수
Select Min(컬럼명)
from 테이블명
where 조건;
숫자 컬럼 중 가장 큰 값을 찾아주는 함수
Select Max(컬럼명)
from 테이블명
where 조건;
실습 문제
중부 경찰서의 평균 범죄 발생 건수는?
결과 :

그룹별 데이터를 조회함
여러 개의 컬럼을 기준으로 그룹핑할 수도 있습니다.
select 컬럼명1, 컬렴명2, ...
from 테이블명
where 조건
group by 컬럼명1, 컬럼명2, ...
order by 컬럼명1, ...
예시 1
crime_status 테이블에서, 경찰서별로 그룹화하여 경찰서 이름을 조회하기
select police_station from crime_status
group by police_station
order by police_station
여기서 어? 이렇게 할 거면 그냥 distinct 써도 되지 않나? 생각할 수 있습니다. (저도 보자마자 이랬음)
하지만 distinct는 order by로 정렬할 수 없습니다.
예시 2
경찰서별로 총 범죄 발생 건수를 검색하기

조건에 집계함수가 포함되는 경우, Where 대신 Having을 사용해야 함
select 컬럼명,
from 테이블명
where 조건
group by 컬럼명2,
having 조건 (집계 함수)
order by 컬럼명3, ...
예시 1
경찰서 별로 발생한 범죄 건수의 합이 4000건보다 큰 경우를 검색하기

실습 문제
경찰서별로 절도 범죄의 평균 발생 건수를 가장 많은 건수 순으로 10개 검색하세요.

🔵 흥미로웠던 점 :
avg 실습 중에 실수로 group by를 까먹은 적이 있는데, 그렇게 했더니 전체 결과에 대한 평균이 구해져서 당황했다. 하지만 덕분에 모호하게 이해하고 있던 group by의 역할에 대해 확실하게 이해할 수 있었다.
🔵 다음 학습 계획 :
Scalar Functions에 대해 배울 것입니다.