case when sum 和 sum case when 的区别
时间: 2024-06-03 09:06:28 浏览: 222
CASE WHEN SUM和SUM CASE WHEN是SQL语句中用于统计和计算的两种不同的方法。
首先,SUM CASE WHEN语句是一种条件聚合函数,它可以根据一个或多个条件来计算聚合值,适用于需要根据特定条件进行分组计算的情况。例如,我们可以使用以下语句计算每个部门的销售额:
```
SELECT department, SUM(CASE WHEN product = 'A' THEN sales ELSE 0 END) AS 'A Sales', SUM(CASE WHEN product = 'B' THEN sales ELSE 0 END) AS 'B Sales', SUM(CASE WHEN product = 'C' THEN sales ELSE 0 END) AS 'C Sales'
FROM sales_table
GROUP BY department;
```
以上语句会将销售表按照部门分组,并计算出A、B、C三个产品的销售额,其中如果某个部门没有销售某个产品,则该产品的销售额为0。
相比之下,SUM CASE WHEN语句是将条件放在了聚合函数SUM内部,使用方式更加简单,适用于不需要按条件分组计算的情况。例如,我们可以使用以下语句计算所有订单的总销售额:
```
SELECT SUM(CASE WHEN status = 'paid' THEN total_price ELSE 0 END) AS 'Paid Sales',
SUM(CASE WHEN status = 'unpaid' THEN total_price ELSE 0 END) AS 'Unpaid Sales'
FROM orders_table;
```
以上语句会将所有订单按照是否支付完成分为两组,并计算出已支付和未支付订单的总销售额。
阅读全文