Sum 및 Group By 절이 있는 SQL 사례

Sum Mich Group By Jeol I Issneun Sql Salye



이 자습서에서는 SUM 함수 및 GROUP BY 절과 함께 CASE 문을 사용하는 방법을 배웁니다.

이 자습서에서는 SQL Case 문, sum() 함수 또는 GROUP BY 절 작업의 기본 사항을 다루지 않습니다. 이러한 SQL 기능의 기본 사항을 찾고 있다면 주제에 대한 자습서를 확인하여 더 자세히 알아보세요.







문제:

'주문'이라는 테이블이 있고 고객 ID별로 그룹화된 각 고객의 총 판매액을 구하고 싶지만 두 개 이상 주문한 고객에 대한 할인도 계산하고 싶다고 가정해 보겠습니다.



표는 다음과 같습니다.



CREATE TABLE 주문 (
order_id INT 기본 키,
고객 ID INT,
product_id INT,
order_date 날짜,
수량 INT,
가격 십진법 ( 10 , 2 )
) ;


다음과 같이 테이블에 샘플 데이터를 삽입합니다.





INSERT INTO 주문 ( order_id, customer_id, product_id, order_date, 수량, 가격 )
가치
( 1 , 101 , 1 , '2022-04-01' , 2 , 10.99 ) ,
( 2 , 102 , 2 , '2022-04-01' , 1 , 19.99 ) ,
( , 103 , 1 , '2022-04-02' , , 8.99 ) ,
( 4 , 101 , , '2022-04-03' , 2 , 15.99 ) ,
( 5 , 102 , 1 , '2022-04-03' , 1 , 12.99 ) ,
( 6 , 104 , 2 , '2022-04-04' , 4 , 7.99 ) ,
( 7 , 103 , , '2022-04-05' , 2 , 21.99 ) ,
( 8 , 101 , 2 , '2022-04-06' , 1 , 18.99 ) ,
( 9 , 104 , 1 , '2022-04-07' , 2 , 9.99 ) ,
( 10 , 102 , , '2022-04-07' , , 14.99 ) ;


그러면 다음과 같이 테이블이 생성됩니다.



Sum 및 Group By 절이 있는 SQL 사례

ID별로 그룹화된 각 고객의 총 매출을 가져오고 두 개 이상의 주문을 한 고객에 대한 할인을 계산하려면 다음과 같이 SUM 및 GROUP BY 절과 함께 CASE 문을 사용할 수 있습니다.

선택하다 주문.customer_id, 합집합 ( 주문.수량 * 주문.가격 * ( 사례 계산할 때 ( * ) > 2 그 다음에 0.9 또 다른 1 ) ) ~처럼 주문의 total_sales;


주어진 예에서는 SQL CASE 문을 사용하여 고객이 두 개 이상의 주문을 했는지 확인합니다.

고객이 두 번 이상 주문한 경우 total_sales에 10% 할인을 적용하는 0.9를 곱합니다.

결론

SUM() 및 GROUP BY 절과 함께 SQL CASE 문을 사용하는 방법에 대해 논의했습니다.