Aggregate functions

eunbi kim·2024년 4월 8일
0
  • Count, Sum
  • Avg, Min, Max
  • Group By, Having

AWS RDS(database-1)에 접속하여 실습을 진행한다.

전 시간까지 쓴 police_station, crime_status 테이블을 사용할 것이다.

Aggregate functions, 집계함수란
여러 컬럼 혹은 테이블 전체 컬럼으로부터 하나의 결과값을 반환하는 함수이다.

Count, Sum

Count: 총 개수를 계산해주는 함수

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

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

  • crime_type은 총 몇 가지?

Sum: 숫자 컬럼의 합계를 계산해주는 함수

  • 범죄 총 발생 건수는?

  • 살인의 총 발생 건수는?

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


Avg, Min, Max

Avg: 평균을 계산해주는 함수

  • 평균 폭력 검거 건수는?

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

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

  • 강도 발생 건수가 가장 적은 경우 몇 건?

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

Max: 숫자 컬럼 중 가장 큰 값을 찾아주는 함수

  • 살인이 가장 많이 검거된 건수는?

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


Group By, Having

Group By: 그룹화하여 데이터를 조회하는 기능이다.

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

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

  • 경찰서별로 평균 발생 범죄 건수를 검색:

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

Having: 조건에 집계함수가 포함되는 경우, WHERE절을 사용할 수 없다.
대신 Having을 사용한다.

지금까지 본 순서를 정리하자면

SELECT column1, column2, ...
FROM table
WHERE condition
GROUP BY column1, column2, ...
HAVING condition (Aggregate Functions)
ORDER By column1, column2, ...

이렇다.

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

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


exercises

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

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

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

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

0개의 댓글