首页 >数据库 >mysql教程 >如何计算分组 SQL 查询 (MSSQL) 中的条件总和?

如何计算分组 SQL 查询 (MSSQL) 中的条件总和?

Patricia Arquette
Patricia Arquette原创
2025-01-08 06:48:40863浏览

How to Calculate Conditional Sums within a Grouped SQL Query (MSSQL)?

在 Group By 查询中使用条件求和 - MSSQL

Freddie 需要一个 SQL 查询来根据特定条件汇总表数据。原始表 OrderDetails 包含四列,表示与特定订单 (OrderId) 相关的成本。目标是创建一个包含五列的新表:OrderId、ItemCount、TotalCopyCost 和 TotalFullPrice。

为了获得所需的结果,使用了 Group By 和 CASE 语句的组合。Group By 用于按 OrderId 分组数据,而 CASE 语句根据 PriceType 列有条件地对 CopyCost 和 FullPrice 值求和:

<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>

此查询有效地按 OrderId 对 OrderDetails 表进行分组,计算每个组中的项目数量,并有条件地对每个组的 CopyCost 和 FullPrice 值求和,从而生成一个具有所需模式的新表。

以上是如何计算分组 SQL 查询 (MSSQL) 中的条件总和?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn