COUNT, SUM, AVG, MIN, MAX, FIRST, LAST, GROUP BY, HAVING
쿼리문에서 원하는 결과값을 출력하기 위해 쓰이는 함수들이 있다.(agg fun과 scalar fun)
크게 어려운건 없는데, group by와 having의 개념만 잘 알고 쓰면 될 것 같다.
select 집계함수(column) from table_name where condition;
테이블에서 컬럼 값을 추출하기 위해 count함수를 쓴다면 distinct를 사용하여 중복 값을 제거해서 추출하면 좋음.
원하는 칼럼을 그룹화하여 데이터를 조회할 수 있음.
(📍그러나 그룹화를 시켜주면 distinct를 사용할 수 없다.)
그룹화를 시켜주냐 안 시켜주냐 차이점은 뭘까?

▲ 그룹화 없이 발생 건수 전체 출력

▲ 경찰서를 그룹화해서 출력.
여기서 이상한 점은 범죄 종류가 전체 출력되는게 아니라, 살인 항목만 출력된다는 점이다.
그룹화를 할 때 전체적으로 다 나오는건 아닌거 같은데.. 왜 그런지는 좀 더 찾아봐야겠다.
하지만 그룹화를 해서 sum, avg 과 같은 전체 수치를 요약한 정보를 얻을 때는 유용하게 쓰일 것 같다.
조건에 집계함수가 포함되는 경우 where 대신 having 사용.


- 합계가 4000건 보다 큰 경우 검색 (조건에 집계함수(합계)가 포함되어 있다. 이럴 때 having 사용)
select police_station, sum(case_number) as cnt from crime_status where status_type like '발생' group by police_station having cnt > 4000;
