使用 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中文網其他相關文章!