실습환경 만들기
- AWS RDS (database-1) zerobase 에 접속
- police_station 데이터 확인 (31 rows)
- crime_status 데이터 확인 (310 rows)
Aggregate Functions (집계함수)
- 여러 칼럼 혹은 테이블 전체 칼럼으로부터 하나의 결과값을 반환하는 함수
COUNT
총 갯수를 계산해 주는 함수
[COUNT 문법]
- police_station 테이블에서 데이터는 모두 몇 개?
- crime_status 테이블에서 경찰서는 총 몇군데?
- crime_type 은 총 몇 가지?
SUM
숫자 칼럼의 합계를 계산해주는 함수
[SUM 문법]
- 범죄 총 발생건수는?
- 살인의 총 발생건수는?
- 중부 경찰서에서 검거된 총 범죄 건수는?
AVG
숫자 칼럼의 평균을 계산해주는 함수
[AVG 문법]
- 평균 폭력 검거 건수는?
- 확인
- 중부경찰서 범죄 평균 발생 건수
- 확인
MIN
숫자 칼럼 중 가장 작은 값을 찾아주는 함수
[MIN 문법]
- 강도 발생 건수가 가장 적은 경우 몇 건?
- 확인
- 중부경찰서에서 가장 낮은 검거 건수는?
- 확인
MAX
숫자 칼럼 중 가장 큰 값을 찾아주는 함수
[MAX 문법]
- 살인이 가장 많이 검거된 건수는?
- 확인
- 강남 경찰서에서 가장 많이 발생한 범죄 건수는?
- 확인
Group By
그룹화하여 데이터를 조회
[Group By 문법]
- crime_status 에서 경찰서별로 그룹화 하여 경찰서 이름을 조회
- 경찰서 종류를 검색 - DISTINCT 를 사용하는 경우 (ORDER BY 를 사용할 수 없음)
- 경찰서 별로 총 발생 범죄 건수를 검색
- 경찰서 별로 평균 범죄 검거 건수를 검색
- 경찰서 별 평균 범죄 발생건수와 평균 범죄 검거 건수를 검색
HAVING
조건에 집계함수가 포함되는 경우 WHERE 대신 HAVING 사용
[HAVING 문법]
- 경찰서 별로 발생한 범죄 건수의 합이 4000 건보다 보다 큰 경우를 검색
- 확인
- 경찰서 별로 발생한 폭력과 절도의 범죄 건수 평균이 2000 이상인 경우를 검색
- 확인 1
- 확인 2
select에 집계 함수를 이용하여 여러가지 데이터의 갯수, 합계, 평균, 최대, 최솟값을 기준으로 확인할 수 있어서 새로웠다
조건에 집계함수가 포함되는 경우 WHERE 대신 HAVING 을 사용하는 것이 생소해서 잘 기억할 수 있을지 모르겠다
어떨때 사용하는지 감은 잡히지만 혼자 해볼때는 막힐 때가 있는 것 같다
집계함수가 끝났는데 SQL파트는 다른 파트보다 더 기본기가 중요하다는 생각이 든다
앞에서 배운 내용들이 부족하면 문장을 이해하는 것이 어려운 느낌이다
내일은 마저 SQL 심화 부분을 마무리 할 예정이다