4-1. 들어가며


  • 학습목표
  • 데이터 그룹화, 집계함수를 통한 통계
  • 그룹화된 데이터의 중복없는 집계
  • 그룹핑된 데이터에 대한 조건을 통해 세부 추출하기


4-2. 집계함수(COUNT, SUM, AVG, MAX, MIN)


COUNT

  • COUNT(*)

    • *은 모든 내용을 포함한다는 의미 -> 모든 행 개수 카운트
    • NULL 포함 ✅
    • 컬럼의 NULL 값 유무 파악은 ❌
  • COUNT(컬럼명)

    • NULL 값 제외한 컬럼명 행 개수 카운트!

정리 : COUNT는 모든 값을 카운트하지 않는 이상, 기본적으로 NULL 값 제외!

  • 날짜 데이터 값이 NULL값인 전체 데이터

  • 전체 컬럼과 weathersit 컬럼의 개수(별칭 사용)


SUM, AVG, MAX, MIN

팁 : 대부분 이름에 어떤 것을 집계하는지 유추할 수 있음!

  • SUM(컬럼명) : 지정한 컬럼명 값 합계
  • AVG(컬럼명) : 지정한 컬럼명 값 평균
  • MAX(컬럼명) : 지정한 컬럼명 값 중 최대값
  • MIN(컬럼명) : 지정한 컬럼명 값 중 최소값
    • MAX와 MIN의 경우 -> 높고 낮은 순(날짜순, 알파벳순 등)으로 연산해 결과 출력!

  • SUM
    • 2011년 3월 casual, registered 고객 전체 이용 건수

🔎 SUM VS COUNT

  • SUM은 컬럼의 데이터를 합하는 것
  • COUNT는 그 컬럼의 개수만 세는 것!

  • MAX, MIN

    • casual 최대 이용 건수, registered 최소 이용 건수

    • weekday 컬럼에 max 사용하기


집계함수 특징 정리

  • 집계 함수 내부 조건문 사용 가능
    • 필요한 내용만 집계할 때
    • ex) 국가 컬럼 값이 한국, korea, south korea로 나뉘어 있다면?
      • CASE WHEN ~ THEN으로 컬럼명을 한국으로 통일
      • 그 다음 COUNT!
  • 집계 함수 결과값끼리 또 계산 가능!
    • ex) SUM(컬럼명) / COUNT(컬럼명)

  • 봄 기간 데이터 카운트

  • 휴일 기간 데이터 카운트



4-3. 데이터 그룹화하기(GROUP BY)


GROUP BY

SELECT
FROM 
WHERE
GROUP BY
ORDER BY 
LIMIT
  • 집계 함수와 함께 사용
    • 집계 함수 없이도 사용은 가능하나, 권장하지 않음.
    • 특정 칼럼 기준 그룹화(건 수, 합계 등 집계 처리 계산 시 사용)

  • SELECT 절에 컬럼명과 집계함수 혼용
    -> 컬럼명은 GROUP BY에 작성해야 한다!
    SELECT 컬럼1, SUM(컬럼)
    FROM 테이블명
    GROUP BY 컬럼1

  • GROUP BY에 지정한 컬럼이 아니면, 집계함수 없이 SELECT문에 지정할 수 ❌(∵ 어떤 행 출력인지 알 수 없기 때문)

  • 결과값 : GROUP BY 절의 컬럼 항목 행 개수!

  • temp 확인

  • 계절 및 온도 RAW 데이터 확인

  • 계절별 평균 온도

    GROUP BY는 컬럼명도, 숫자도 사용 가능!

  • 시간대별 이용 건수 합계

  • 일자별, 날씨별 이용 건수 합계



4-4. 그룹화한 데이터 조건주기(HAVING)


HAVING

SELECT
FROM 
WHERE
GROUP BY
HAVING
ORDER BY 
LIMIT
  • 집계함수를 써서 조건 비교 시 사용(그룹 결과 제한)
  • 그룹함수를 사용해 나온 결과를 조건에 부합하도록 필터링할 수 있음!
  • 집계 함수, 데이터 그룹핑으로 데이터의 특성별 분류 및 계산 가능

  • 날씨별 이용 건수 합계 중 10만건 이상 데이터만!

WHERE vs HAVING

  • WHERE

    • 집계 함수 사용 ❌
    • 개별 행에 적용
    • GROUP BY 이전 적용
  • HAVING

    • 그룹에 적용
    • GROUP BY 이후 적용

  • 온도가 0.3 이상인 계절 및 온도 데이터 필터링

  • 계절별 평균 온도가 0.3 이상인 데이터 필터링

profile
언젠가 내 코드로 세상에 기여할 수 있도록, BE&Data Science 개발 기록 노트☘️

0개의 댓글