SQL 聚合函数如何与 CASE WHEN 配合?

答案:SQL中聚合函数与CASE WHEN结合可实现条件统计,如用SUM配合CASE按状态求订单金额总和,COUNT配合CASE统计男女用户数,AVG计算高评分订单平均金额,并可通过GROUP BY按部门统计薪资超8000人数。

sql 聚合函数如何与 case when 配合?

SQL 聚合函数和 CASE WHEN 结合使用,可以在聚合过程中实现条件判断,灵活地对数据进行分组统计。这种组合常用于根据不同条件计算不同的聚合结果,比如条件计数、条件求和、分类统计等。

条件求和(SUM + CASE WHEN)

当你想根据某个条件对特定行求和时,可以用 SUM 配合 CASE WHEN

示例:统计订单中“已完成”和“已取消”的金额分别总和

SELECT   SUM(CASE WHEN status = 'completed' THEN amount ELSE 0 END) AS completed_total,  SUM(CASE WHEN status = 'cancelled' THEN amount ELSE 0 END) AS cancelled_totalFROM orders;

说明:只有满足条件的记录才参与求和,不满足则加 0,不影响总和。

条件计数(COUNT + CASE WHEN)

COUNT 会忽略 NULL 值,因此在使用 CASE 返回 NULL 可以实现条件计数。

示例:统计不同性别的用户数量

SELECT   COUNT(CASE WHEN gender = 'M' THEN 1 END) AS male_count,  COUNT(CASE WHEN gender = 'F' THEN 1 END) AS female_countFROM users;

说明:当条件不满足时,CASE 返回 NULL,而 COUNT 不计入 NULL,从而实现精准计数。

条件平均值(AVG + CASE WHEN)

可以计算满足特定条件的数据的平均值。

琅琅配音 琅琅配音

全能AI配音神器

琅琅配音 208 查看详情 琅琅配音 示例:计算高评分(>=4)订单的平均金额

SELECT   AVG(CASE WHEN rating >= 4 THEN amount END) AS avg_high_rated_amountFROM orders;

说明:不满足条件时返回 NULL,AVG 自动忽略这些值。

结合 GROUP BY 进行分组条件聚合

更常见的是与 GROUP BY 搭配,按类别做条件统计。

示例:按部门统计薪资是否超过 8000 的人数

SELECT   department,  COUNT(CASE WHEN salary > 8000 THEN 1 END) AS high_salary_count,  COUNT(CASE WHEN salary <= 8000 THEN 1 END) AS low_salary_countFROM employeesGROUP BY department;

说明:每个部门都会分别统计高薪和低薪员工数量。

基本上就这些。关键是理解:CASE WHEN 在聚合内部控制哪些值参与计算,配合聚合函数的特性(如忽略 NULL),就能实现灵活的条件统计。

以上就是SQL 聚合函数如何与 CASE WHEN 配合?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/588474.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Word公式编辑器怎么使用?
上一篇 2025年11月10日 14:16:46
使用 Beautiful Soup 从非结构化 HTML 中高效提取特定文本
下一篇 2025年11月10日 14:16:49

相关推荐

发表回复

登录后才能评论
关注微信