在 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中文网其他相关文章!