[SQL] Aggregate Func.

곽민호·2024년 7월 9일

제로베이스 DS

목록 보기
3/5

집계함수 요약

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를 사용하여 중복 값을 제거해서 추출하면 좋음.


GROUP BY

원하는 칼럼을 그룹화하여 데이터를 조회할 수 있음.
(📍그러나 그룹화를 시켜주면 distinct를 사용할 수 없다.)

그룹화를 시켜주냐 안 시켜주냐 차이점은 뭘까?

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

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


HAVING

조건에 집계함수가 포함되는 경우 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;


  • 이 글은 제로베이스 강의 자료 일부를 발췌하여 작성했습니다.

0개의 댓글