Case when搭配sum
时间: 2023-06-12 08:06:06 浏览: 281
在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 ]
case when和sum使用
在SQL查询中,`CASE WHEN` 和 `SUM` 是两个非常常见的函数,它们通常一起用于条件求和。
`CASE WHEN` 是一个案例表达式,它允许你根据一个或多个条件对数据进行条件判断,并返回相应的结果。它的基本语法是:
```sql
CASE
WHEN condition THEN result_for_true
[WHEN ...]
ELSE default_result
END
```
例如,如果你有一个销售表,你想计算每个员工的总销售额,你可以按员工ID分组,如果某个月份的销售额大于0,则将这个月的销售额计入总和,否则忽略:
```sql
SELECT EmployeeID,
SUM(
CASE
WHEN SalesAmount > 0 THEN SalesAmount
ELSE 0
END
) AS TotalSales
FROM SalesTable
GROUP BY EmployeeID;
```
`SUM` 函数则是对一组数值型列进行求和。在这个例子中,它会累加每个符合条件(`SalesAmount > 0`)的 `SalesAmount` 列。
阅读全文
相关推荐
















