[데이터리안 | 입문반25기] Week 2 데이터 그룹별로 요약하기

sookyoung.k·2024년 1월 20일
0
post-thumbnail

🗂️ 데이터 그룹별로 요약하기 (GROUP BY)

1. 그룹별로 요약하기 (GROUP BY)

SELECT (기준 컬럼)
		,(집계 함수값)
	FROM (테이블) 
	GROUP BY (기준 컬럼)

⚠️ 기준값도 SELECT 문에 넣어줘야 하는 것 잊지 말기!

♟️ 기준이 두 개라면?!

그냥 기준을 두 개 연달아 쓰면 된다!

SELECT (기준 컬럼1) 
       ,(기준 컬럼2)
	   ,(집계 함수값)
	FROM (테이블) 
	GROUP BY (기준 컬럼1), (기준 컬럼2)
    ORDER BY (기준 컬럼1), (기준 컬럼2)

♟️ SELECT → FROM → GROUP BY → ORDER BY 순서 잘 지키기!

♟️ GROUP BY 뒤에 쓰는 컬럼 순서는 의미가 없다! → 그냥 보기 편한 순서대로 쓰면 됨
(⚠️ ORDER BY는 컬럼 순서에 따라서 우선 순위가 정해짐!)

♟️ GROUP BY에 숫자를 쓰는 경우도 있는데... 컴럼 이름이 아니라 컬럼 위치를 적은 것
⚠️ 이런 작성법은 가독성이 떨어지니까 추천하지 않음

2. 요약 정보 필터링하기 (HAVING)

  • HAVING: GROUP BY 후 연산 결과물을 필터링
    → 결과값을 기준
  • WHERE: GROUP BY 하기 전 필터링
    → 테이블의 원본데이터 기준
SELECT (기준 컬럼)
		,(집계 함수값)
	FROM (테이블) 
	GROUP BY (기준 컬럼)
    HAVING (기준) < ();

♟️ SELECT → FROM → WHERE → GROUP BY → HAVING
⚠️ HAVING 은 꼭 GROUP BY 뒤에 써야한다!

  • GROUP BY 전 WHERE
  • GROUP BY 후 HAVING

☹️ 언제 WHERE을 쓰고, 언제 HAVING을 쓰는 걸까?

  • 아무런 가공 없는 원본 데이터에서 조건을 쓰려면 WHERE

  • GROUP BY를 사용하여 연산한 결과에서 조건을 쓰려면 HAVING

3. 요약 정보 정렬하기 (ORDER BY)

GROUP BY 한 데이터를 정렬하기!

SELECT (기준 컬럼)
		,(집계 함수값)
	FROM (테이블) 
	GROUP BY (기준 컬럼)
    ORDER BY (정렬할 기준 컬럼) ASC/DESC

➡️ ASC 오름차순
➡️ DESC 내림차순

♟️ SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY → LIMIT

⚠️ 별칭을 준 컬럼을 사용할 수 없을 수도 있다!

➡️ 실행 순서 때문!

  1. FROM
  2. WHERE
  3. GROUP BY
  4. HAVING
  5. SELECT
  6. ORDER BY
  7. LIMIT

WHERE절을 실행할 때 아직 SELECT절이 실행되기 전임
☹️ SELECT에서 정의한 별칭은 WHERE 절에서 사용할 수 없다
😀 ORDER BY는 SELECT 이후에 실행되기 때문에 별칭 사용 가능

실행 순서 상 GROUP BY, HAVING은 별칭을 사용할 수 없는데... 몇몇 DATABASE에서는 사용이 가능함! 그것이 바로... MySQL

♟️ MySQL 날짜 더하기, 빼기

  • DATE_ADD(): 날짜 더하기

SELECT DATE_ADD('기준 날짜', INTERVAL 1 DAY/MONTH/YEAR)

  • DATE_SUB(): 날짜 빼기

SELECT DATE_SUB('기준 날짜', INTERVAL 1 DAY/MONTH/YEAR)

profile
영차영차 😎

0개의 댓글