>데이터 베이스 >MySQL 튜토리얼 >MSSQL Group By 쿼리에서 조건부 합산을 수행하는 방법은 무엇입니까?

MSSQL Group By 쿼리에서 조건부 합산을 수행하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-08 07:08:40719검색

How to Perform Conditional Summation in MSSQL Group By Queries?

MSSQL의 GROUP BY 절을 이용한 조건부 합

Microsoft SQL Server(MSSQL)는 GROUP BY 절을 사용하여 유연한 데이터 집계를 제공합니다. GROUP BY 쿼리 내에서 조건부 합산을 수행하려면 CASE 문을 활용하여 특정 기준에 따라 합계에 값을 선택적으로 포함하세요.

다음 구조의 OrderDetails 테이블을 생각해 보세요.

<code>----------------------------------------------------------------
|  OrderId  |  CopyCost  |  FullPrice  |  Price  |  PriceType  |
----------------------------------------------------------------
|  16       |  50        |  100        |  50     |  CopyCost   |
----------------------------------------------------------------
|  16       |  50        |  100        |  100    |  FullPrice  |
----------------------------------------------------------------
|  16       |  50        |  100        |  50     |  CopyCost   |
----------------------------------------------------------------
|  16       |  50        |  100        |  50     |  CopyCost   |
----------------------------------------------------------------</code>

ItemCount에 대한 TotalCopyCost, TotalFullPriceOrderId을 계산하려면 다음 쿼리를 사용하세요.

<code class="language-sql">SELECT OrderId, 
       COUNT(*) AS ItemCount,
       SUM(CASE WHEN PriceType = 'CopyCost' THEN Price ELSE 0 END) AS TotalCopyCost,
       SUM(CASE WHEN PriceType = 'FullPrice' THEN Price ELSE 0 END) AS TotalFullPrice
FROM OrderDetails
GROUP BY OrderId;</code>

CASE 함수 내의 SUM() 문은 Price 값을 조건부로 합산합니다. PriceType이 'CopyCost'인 경우 Price가 포함됩니다. 그렇지 않으면 0이 추가됩니다. 이를 통해 OrderId별로 'CopyCost' 및 'FullPrice'에 대한 별도의 합계가 가능합니다.

출력은 다음과 같습니다.

<code>----------------------------------------------------------------
|  OrderId  |  ItemCount  |  TotalCopyCost  |  TotalFullPrice  |
----------------------------------------------------------------
|  16       |  4          |  150            |  100             |
----------------------------------------------------------------</code>

이는 CASE 문이 GROUP BY 쿼리 내에서 강력한 조건부 집계를 활성화하여 MSSQL의 데이터 요약 및 분석을 위한 유연한 방법을 제공하는 방법을 보여줍니다.

위 내용은 MSSQL Group By 쿼리에서 조건부 합산을 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.