[SQL] Why - GROUP BY절에서 2개 이상의 칼럼.

하쮸·2024년 12월 18일

Error, Why, What, How

목록 보기
9/68

1. GROUP BY절에 2개 이상의 칼럼.

  • GROUP BY C.category_id, C.name처럼 GROUP BY 절에 두 개 이상의 컬럼을 지정하면 지정한 모든 컬럼의 조합을 기준으로 데이터가 그룹화 됨.
    • GROUP BY는 데이터를 특정 기준으로 그룹화하고 해당 그룹별로 집계(Ex. COUNT, SUM 등)를 수행.

Ex

category_idnamelanguage_idfilm_idtitle
1Action1101Fast & Furious
1Action2102Velozes e Furiosos
1Action1106John Wick
2Comedy1103The Mask
2Comedy1104Dumb and Dumber
2Comedy2107O Auto da Compadecida
3Drama1105Titanic
  • 위의 데이터를 기준.
SELECT category_id, name, language_id, COUNT(*) AS film_count
FROM film_category
GROUP BY category_id, name, language_id
ORDER BY film_count DESC;
category_idnamelanguage_idfilm_count
1Action12
1Action21
2Comedy12
2Comedy21
3Drama11
  • 그룹화 기준은 지정된 모든 컬럼 값의 조합.
    • 즉 그룹별로 독립적으로 집계.

Ex

category_idnamefilm_id
1Action101
1Adventure102
  • 위 데이터에서 GROUP BY C.category_id만 사용할 경우 Action과 Adventure가 같은 그룹으로 묶이는 오류가 발생할 수 있음.
    • 이런 케이스를 방지하기 위해서 GROUP BY에 2개 이상의 칼럼을 지정.
      • 쿼리의 안정성과 가독성을 높여줌.

Ex

SELECT year,
       month,
       SUM(volume) AS volume_sum
  FROM tutorial.aapl_historical_stock_price
 GROUP BY year, month
 ORDER BY year, month


2. 참고.

profile
Every cloud has a silver lining.

0개의 댓글