Case when搭配sum
时间: 2023-06-12 08:06:06 浏览: 82
在SQL中,CASE WHEN语句可以与SUM函数一起使用,用于对符合条件的记录进行统计求和。
例如,假设有一张销售订单表,其中包含商品名称、销售数量和单价等字段。现在需要统计每种商品的销售总额,可以使用以下SQL语句:
```
SELECT
商品名称,
SUM(CASE WHEN 销售数量 > 0 THEN 销售数量 * 单价 ELSE 0 END) AS 销售总额
FROM
订单表
GROUP BY
商品名称
```
在上述SQL语句中,使用了CASE WHEN语句对销售数量大于0的记录进行了条件判断,如果符合条件,则将销售数量乘以单价进行求和;否则将该记录的销售总额置为0。最终使用SUM函数对符合条件的销售总额进行求和,得到了每种商品的销售总额。
相关问题
case when 搭配 sum
引用中提到了使用case when搭配sum函数的例子,可以根据条件进行求和操作。例如,可以使用以下语句来计算C=1和C=2时D和E的和:
SELECT sum(case when C=1 then D else 0 end)/sum(case when C=1 then E else 0 end) as C1, sum(case when C=2 then D else 0 end)/sum(case when C=2 then E else 0 end) as C2,B
FROM test.newrain
GROUP BY B
引用中也给出了一些使用case when搭配sum函数的例子。例如,可以使用以下语句来计算每个人的不同科目的最高分:
SELECT tname as '姓名' , max(case ttype when '语文' then tscor else 0 end) '语文', max(case ttype when '数学' then tscor else 0 end) '数学', max(case ttype when '英语' then tscor else 0 end) '英语'
FROM testScore
GROUP BY tname
另外,引用中还给出了一个使用case when搭配sum函数的例子,可以根据科目的不同进行分组并计算总分。例如,可以使用以下语句来计算每个人的总分以及科别:
SELECT tname as '姓名', case when ttype='数学' then '理科' else '文科' end as '科别', sum(tscor) as '总分'
FROM testscore
GROUP BY tname, case when ttype='数学' then '理科' else '文科' end
通过以上例子,可以看出使用case when搭配sum函数可以根据条件进行求和操作,并且可以根据不同的条件进行分组和计算结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [sql语言中group by和case when及sum(case when)的结合使用](https://blog.csdn.net/WuLex/article/details/115055979)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
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时,返回'第二类';否则返回'其他'。请注意,这只是一个示例,具体的条件判断和返回结果应根据您的实际需求进行修改。