问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

SQL使用CASE WHEN 行转列为什么会出现NULL值?

发布网友 发布时间:2022-04-25 04:55

我来回答

5个回答

热心网友 时间:2022-04-14 18:21

因为是男女分别统计,一般不这么用

select --avg(总分),
    avg(case when 性别='男' then 总分 else 0 END) AS '男生的平均成绩',
    avg(case when 性别='女' then 总分 else 0 END) AS '女生的平均成绩'
from students
--GROUP BY 性别--这个group by去掉

你试试

热心网友 时间:2022-04-14 19:39

要注意不能计算男、女的平均成绩时,不能对所有人进行avg:

select avg(总分),
    sum(case when 性别='男' then 总分 else 0 end)/count(case when 性别='男' then 1 else 0 end) 男生的平均成绩,
    sum(case when 性别='女' then 总分 else 0 end)/count(case when 性别='女' then 1 else 0 end) 女生的平均成绩
from students

热心网友 时间:2022-04-14 21:14

当case 子句的条件未包括所有的取值情况,会出现null值。

例:select case when a >1 then A,when a=1 then b end
那么当 a< 1 时,语句中未指定取值,则返回 null值。

热心网友 时间:2022-04-14 23:05

你这逻辑不对。

select avg(总分) 平均分,
avg(case when 性别='男' then 总分 else 0 END) AS '男生平均成绩',
avg(case when 性别='女' then 总分) else 0 END) AS '女生平均成绩'
from students;

热心网友 时间:2022-04-15 01:13

逻辑有问题。
首先你group by 性别,但是字段中却不取性别,虽然不是一定不行,但是这样有可能产生问题的时候因为你忽略了一个字段导致你发现不了。
其次你group by 性别,应该是想按性别来分组显示,但是你又用了case when判断语句,一般来说case when很少用在分组语句中,即使一定要用,也应该配合聚合语句(如sum,count等),你这个语法应该是无法通过的。
正确的语句楼下有写你可以看他的,但是其实写得更有逻辑性:
select 性别,sum(分数)/count(人名) from students
group by 性别
逻辑简单易懂才不容易出错
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...道上的地方他们一起推(也许是摇)的那个车是什么? 坤宝丸一个疗程吃多久 坤宝丸的作用和功效 公司注册后长期未运营,会自动注销吗? cheerfull什么意思 像这种图图 美图秀秀可以做么 怎么做 这种图片是怎么弄得?听说是用美图秀秀。在手机上怎么弄?不要用电脑的... ...是用什么软件做出来的?纯色的背景,不是美图秀秀,美图秀秀里没有... 深圳市必图社数码科技有限公司公司简介 从上海人民广场到必图必科技公司,怎么走?远吗? 我是xp系统的,绘客数位板hk708s安装后画着画着就突然弹出一个框如图, 然后就没压感了。 老式冰箱的日耗电量大概是多少? 老式冰箱一天用多少度电 冰箱耗电厉害怎么办 EXCEL表格内怎么 把N列以后的表格和内容全部删掉? 老式冰箱一天耗多少电? 20年的老冰箱每天耗电有多少 现货与股票、期货之间的区别?请用表格进行对比表达。。。谢谢。。_百度... (数学帝)20年前的冰箱还在用。这冰箱有多费电呀? 请问老式冰箱为啥那么耗电,24小时为一天要用3度电左右,这属正常吗? 接触职业病危害因素如何界定? 旧冰箱耗电量巨大是怎么回事? 有没有朋友可以解答一下tpe材料与人体接触有伤害么? win10能不能装绘客HK708S的手绘板 世界银行黑名单榜上的中国企业是哪些 人体长期接触金属钨有危害吗?具体的危害有那些…? 绘客HK708手绘板安装驱动后依然没有笔压,为什么驱动安装不成功? hk708s为什么用的时候会卡顿 银行黑名单,可以办个体营业执照吗? 关于接触铅的危害。 请问绘客708s数位板怎么安装驱动呀,我下载了安装完就是没有小图标,板子也没反应 请教一个列转行的问题,用case when 实现 刚买的绘客708s驱动也安装上重启过了了,怎么没反应啊? 请问这样的冰箱(老式的,用了十几年了)一天耗多少电? SQL case when 语句 绘客708s的驱动怎么卸载 旧的冰箱是不是很耗电啊? sql casewhen优化 家里冰箱用的电费好多,有什么办法吗? 绘客HK708s驱动下载好应该安装哪个? 我的系统是win10 老式容声冰箱一天耗电2.4度正常吗? SQL语句行转列 mysql 行转列问题 mysql的case when语句转oracle oracle case when 满足多个条件后可以对字段进行格式转换吗?? SQL中行转列除了使用case when以外还有别的技术可以实现吗? mySQL查询语句行转列横向显示 MS SQL SERVER 如何把多列的值 , 变成一列多行 . SQL中行转列问题。。。先是列转行,后来我想在倒回去,怎么写?? 电线BV和BVR的区别?