ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL GROUP BY절 DISTINCT 구문 사용법
    카테고리 없음 2023. 5. 23. 14:38
    반응형

    SQL GROUP BY와 DISTINCT 구문은 테이블 데이터의 집계를 작성하는 데 자주 사용됩니다. 둘 다 중복 행을 처리하지만 작동 방식이 다릅니다. GROUP BY는 테이블을 열에 따라 그룹화하고 그룹별로 집계 함수를 적용합니다. 반면에 DISTINCT는 테이블에서 중복 행을 완전히 제거합니다.



    이 게시물에서는 GROUP BY와 DISTINCT 구문을 자세히 설명하고 함께 사용하는 방법을 보여줍니다. 또한 GROUP BY와 DISTINCT의 성능과 사용 예에 대해서도 설명합니다.

     

    GROUP BY와 DISTINCT는 다음과 같은 다양한 상황에서 사용할 수 있습니다.

    • 각 국가에 대해 한 명의 고객만 반환하는 고객 목록을 생성합니다.
    • 각 도시에 대해 한 명의 고객만 반환하는 고객 목록을 생성합니다.
    • 각 국가에 대해 한 명의 고객만 반환하고 각 고객의 주문 수를 계산하는 고객 목록을 생성합니다.
    • 각 도시에 대해 한 명의 고객만 반환하고 각 고객의 주문 수를 계산하는 고객 목록을 생성합니다.

    GROUP BY

    GROUP BY는 테이블의 행을 하나 이상의 열에 따라 그룹화하는 데 사용됩니다. 그룹화 후 그룹별로 집계 함수를 적용할 수 있습니다. 예를 들어, 다음 쿼리는 각 국가의 고객 수를 계산합니다.

     

    SELECT country, COUNT(*) AS customer_count
    FROM customers
    GROUP BY country;
    
    결과
    country | customer_count
    ------- | ------------
    USA     | 10
    UK      | 4
    Portugal | 2

     

    DISTINCT

    DISTINCT는 테이블에서 중복 행을 제거하는 데 사용됩니다. 예를 들어, 다음 쿼리는 각 도시에 대해 한 명의 고객만 반환합니다.

    SELECT DISTINCT city
    FROM customers;
    
    결과
    city
    -------
    New York
    Los Angeles
    Chicago
    London
    Manchester

     

    GROUP BY와 DISTINCT는 모두 중복 행을 제거하는 데 사용할 수 있지만 작동 방식이 다릅니다. GROUP BY는 테이블을 열에 따라 그룹화한 다음 그룹별로 집계 함수를 적용합니다. 반면에 DISTINCT는 테이블에서 중복 행을 완전히 제거합니다.

    GROUP BY와 DISTINCT를 함께 사용하여 테이블에서 중복 행을 제거한 다음 그룹별로 집계 함수를 적용할 수 있습니다. 예를 들어, 다음 쿼리는 각 국가에 대해 한 명의 고객만 반환하고 각 고객의 주문 수를 계산합니다.

    SELECT country, customer_id, COUNT(*) AS order_count
    FROM orders
    GROUP BY country, customer_id;
    
    결과
    country | customer_id | order_count
    ------- | ---------- | ------------
    USA     | 1           | 3
    USA     | 2           | 1
    USA     | 3           | 2
    UK      | 4           | 1
    Portugal | 5           | 1

    GROUP BY와 DISTINCT는 모두 테이블에서 중복 행을 처리해야 하므로 집계 함수보다 느릴 수 있습니다. 그러나 GROUP BY는 DISTINCT보다 더 효율적일 수 있습니다. 왜냐하면 GROUP BY는 테이블을 열에 따라 그룹화할 수 있지만 DISTINCT는 테이블에서 중복 행을 완전히 제거해야 하기 때문입니다.

    GROUP BY 및 DISTINCT는 SQL의 강력한 도구입니다. 테이블에서 중복을 제거하고 집계 함수를 적용하는 데 사용할 수 있습니다. 이 게시물이 GROUP BY 및 DISTINCT에 대해 배운 내용을 요약하고 이러한 구문을 사용하여 실제 문제를 해결하는 데 도움이 되기를 바랍니다.

     

    반응형

    댓글

Designed by Tistory.