[sql] GROUP BY 절을 활용하여 데이터의 개수 세기

GROUP BY 절을 활용하여 특정 열의 값에 따라 데이터를 그룹화하고, 각 그룹 내의 데이터 개수를 세는 과정을 나타낼 수 있습니다.

아래는 “products” 테이블을 예시로 들어 설명합니다.

  1. 데이터 그룹화
    SELECT category, COUNT(*) AS product_count
    FROM products
    GROUP BY category;
    

    위 쿼리는 “products” 테이블을 “category” 열을 기준으로 그룹화하고, 각 그룹 내의 데이터 개수를 계산합니다. 결과는 “category”와 그에 해당하는 “product_count” 열로 표시됩니다.

    • category: 데이터를 그룹화할 기준이 되는 열
    • COUNT(*) AS product_count: 각 그룹 내의 데이터 개수를 세는 함수
  2. 정렬
    SELECT category, COUNT(*) AS product_count
    FROM products
    GROUP BY category
    ORDER BY product_count DESC;
    

    위 쿼리는 “product_count”를 기준으로 내림차순으로 결과를 정렬합니다.

  3. 조건을 추가하여 특정 범위 내의 데이터 개수 세기
    SELECT category, COUNT(*) AS product_count
    FROM products
    WHERE price > 100
    GROUP BY category;
    

    위 쿼리는 “price”가 100보다 큰 상품들을 “category”를 기준으로 그룹화한 후, 각 그룹 내의 데이터 개수를 계산합니다.

주의 사항

데이터를 그룹화한 뒤 개수를 세는 GROUP BY 절을 사용할 때는 유의해야 합니다. GROUP BY에 기술된 열 외의 열을 SELECT 절에 포함하려면 해당 열에 대한 집계 함수를 사용해야 합니다.