SQL (Aggregate Functions, 집계함수)

·2023년 4월 30일
0

SQL

목록 보기
8/11

📌 Aggregate Functions (1)

📒 COUNT

총 갯수를 계산해 주는 함수

select count(column) from table_name
where condition;

police_station 테이블에서 데이터는 모두 몇 개인가 ?


crime_status 테이블에서 경찰서는 총 몇 군데인가?


crime_type 은 총 몇 가지인가?



📒 SUM

숫자 칼럼의 합계를 계산해주는 함수

select sum(column) from table_name
where condition;

범죄의 총 발생건수


살인의 총 발생건수


중부경찰서에서 검거된 총 범죄 건수



📒 실습

1) police_station 에서 경찰서는 총 몇 개이고, 각각 경찰서 이름은 무엇인지 확인하세요.

2) crime_status 에서 status_type 은 총 몇 개이고, 각각 타입은 무엇인지 확인하세요.

3) 종로경찰서와 남대문경찰서의 강도 발생 건수의 합을 구하세요.

4) 폭력 범죄의 검거 건수의 합을 구하세요.

=> crime_type='폭력' 으로 쿼리 작성했지만, crime_type like '폭력' 도 가능하다 !




📌 Aggregate Functions (2)

📒 AVG

숫자 칼럼의 평균을 계산해주는 함수

select avg(column) from table_name
where condition;

평균 폭력 검거 검수


중부경찰서 범죄 평균 발생건수



📒 MIN

숫자 칼럼 중 가장 작은 값을 찾아주는 함수

select min(column) from table_name
where condition;

강도 발생 건수가 가장 적은 경우의 건수


중부경찰서에서 가장 낮은 검거 건수



📒 MAX

숫자 칼럼 중 가장 큰 값을 찾아주는 함수

select max(column) from table_name
where condition;

살인이 가장 많이 검거된 검수


강남경찰서에서 가장 많이 발생한 범죄 건수



📒 실습

1) 살인의 평균 발생 건수를 검색하고 확인하세요.


2) 서초경찰서의 범죄별 평균 검거 건수를 검색하고 확인하세요.


3) 구로경찰서와 도봉경찰서의 평균 살인 검거 건수를 검색하고 확인하세요.


4) 광진경찰서에서 가장 낮은 범죄 검거 건수를 검색하고 확인하세요.


5) 절도 검거가 가장 많은 건수를 검색하고 확인하세요.




📌 Aggregate Functions (3)

📒 GROUP BY

  • 그룹화하여 데이터를 조회 (DISTINCT와 같이 중복 제거)

  • 원하는 기준으로 그룹화하여 집계 함수를 사용하여 정보를 얻을 수 있다.

select column1, column2, ... from table_name
where condition

group by column1, column2, ...
order by column1, column2, ...;

crime_status 에서 경찰서별로 그룹화하여 경찰서 이름을 조회

=> ORDER BY 사용한 경우와 사용하지 않은 경우를 비교해봤다.
=> GROUP BY 대신 DISTINCT 사용해도 된다.


경찰서 별로 총 발생 범죄 건수를 검색


경찰서별로 평균 범죄 검거 건수를 검색


경찰서별 평균 범죄 발생건수와 평균 범죄 검거 건수를 검색



📒 HAVING

조건에 집계함수가 포함되는 경우 WHERE 대신 HAVING 사용

💡 GROUP BY 를 사용할 때 집계함수를 사용하는 경우에는 HAVING을 사용한다. GROUP BY 가 없어도 테이블 전체가 하나의 그룹이 된다면, HAVING 을 단독으로 사용할 수 있다.

select column1, column2, ... from table_name
where condition

group by column1, column2, ...
having condition (Aggregate Functions)
order by column1, column2, ...;

경찰서별로 발생한 범죄 건수의 합이 4000건보다 큰 경우를 검색


경찰서별로 발생한 폭력과 절도의 범죄 건수 평균이 2000 이상인 경우를 검색



📒 실습

1) 경찰서별로 절도 범죄 평균 발생 건수를 가장 많은 건수 순으로 10개 검색하고 확인하세요.


2) 경찰서별로 가장 많이 검거한 범죄 건수를 가장 적은 건수 순으로 5개 검색하세요.


3) 경찰서별로 가장 적게 검거한 건수 중 4건보다 큰 경우를 건수가 큰 순으로 정렬하여 검색하세요.


4) '대문'으로 끝나는 이름의 경찰서별 범죄 발생 건수의 평균이 500건 이상인 경우를 검색하세요.




0개의 댓글