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
, TotalFullPrice
및 OrderId
을 계산하려면 다음 쿼리를 사용하세요.
<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!