case when sum() 与 sum(case when)
时间: 2023-06-05 20:47:14 浏览: 245
sum()和sum(case when)是SQL语句中的两个不同的函数,用于求和操作。
sum()函数的作用是计算给定列的所有值之和。例如,我们可以使用以下语句来计算一列中所有值的总和:
SELECT SUM(column_name) FROM table_name;
而sum(case when)函数则是在sum的基础上增加了条件判断的功能,可以根据指定的条件对要计算的值进行筛选和分组,最终计算出符合条件的值的总和。
例如,我们可以使用以下语句来计算某一列中满足条件的值的总和:
SELECT SUM(CASE WHEN condition THEN column_name ELSE 0 END) FROM table_name;
在这个语句中,我们使用CASE WHEN语句指定了一个条件,只有满足条件的值才会被计算。如果满足条件,则计算该值,否则将其替换为0进行计算。
总的来说,sum()函数和sum(case when)函数都是用于计算值的总和,但sum(case when)函数能够进行条件筛选和分组,计算出更加精细的结果。
相关问题
case when sum 和 sum case when 的区别
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;
```
以上语句会将所有订单按照是否支付完成分为两组,并计算出已支付和未支付订单的总销售额。
sql case when sum
引用提供了一个正确的SQL语句示例,其中使用了CASE函数来进行条件判断并返回相应的结果。引用指出了在使用CASE函数时需要注意的问题,即只返回第一个符合条件的值,而忽略后面的条件。引用则给出了一个错误的SQL语句示例。
根据问题描述,我理解您想要在SQL语句中使用CASE函数来对sum进行条件判断。可以按照以下方式修改SQL语句来实现您的需求:
SELECT
CASE
WHEN sum(t.COR_STATUS) = 1 THEN '第一类'
WHEN sum(t.COR_STATUS) = 2 THEN '第二类'
ELSE '其他'
END AS result
FROM
T_BUSI_DRILL_RECORD t;
在上述SQL语句中,我们使用了SUM函数对t.COR_STATUS进行求和,并根据求和结果使用CASE函数进行条件判断。根据您的需求,当求和结果为1时,返回'第一类';当求和结果为2时,返回'第二类';否则返回'其他'。请注意,这只是一个示例,具体的条件判断和返回结果应根据您的实际需求进行修改。
阅读全文