首頁 > 資料庫 > mysql教程 > 如何在MSSQL Group By查詢中執行條件求和?

如何在MSSQL Group By查詢中執行條件求和?

Barbara Streisand
發布: 2025-01-08 07:08:40
原創
721 人瀏覽過

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>
登入後複製

要計算每個 ItemCountTotalCopyCostTotalFullPriceOrderId,請使用以下查詢:

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板