永发信息网

Oracle 按照伪列总分分组 分组之后得到每组的前三列。

答案:3  悬赏:0  手机版
解决时间 2021-02-02 11:19
有一学生表,有三个成绩chinese,maths,english, 我要加一个伪列 成绩总分表
下面是我写的伪列统计总分表
select classid,chinese,maths,english, nvl(chinese,0)+ nvl(maths,0)+ nvl(english,0) 成绩和 from grade
用分组的话是这样的

SELECt * FROM (SELECt T.*, ROW_NUMBER() OVER(PARTITION BY classid ORDER BY english DESC) 总分 FROM grade T) WHERe 总分 < 4
这样只能用english分数大小排名,但是我想用伪列排名 我把english换成(select nvl(chinese,0)+ nvl(maths,0)+ nvl(english,0) 成绩和 from grade)报错单个子查询返回多个值。
求大神指教。
最佳答案
多加一层嵌套语句就能解决这个问题
SELECt T.*
FROM (
SELECt classid,chinese,maths,english, nvl(chinese,0)+ nvl(maths,0)+ nvl(english,0) total
FROM grade
) T
WHERe total < 4
ORDER BY total desc

当然,如果希望获取number号,进行分页,外面再增加一层即可
全部回答
试试 SELECt * FROM (SELECt T.*, ROW_NUMBER() OVER(PARTITION BY classid ORDER BY 总分 DESC) 总分 FROM (select classid,chinese,maths,english, nvl(chinese,0)+ nvl(maths,0)+ nvl(english,0) 总分 from grade) T) WHERe 总分 < 4
难道把english换成nvl(chinese,0)+ nvl(maths,0)+ nvl(english,0)不行吗?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中公教育昭觉学习中心怎么去啊,我要去那办事
王者荣耀主播怎么看的出来
女生有男朋友了,是不是就不会在乎其他男生了
小程序电商平台有哪些?
梦见割下老婆一留头发
为何我不能关注黄生看金融
【商业计划书的目录作用在于】商业计划书的目
昭觉青年创业培训中心地址在哪,我要去那里办
我会在第一时间告诉你结果 英语翻译
为什么我一玩英雄联盟就爱尿尿,特别是喝水了
洛阳火车站到新310国道怎么走
关于排水管的敷设要求,以下哪项错误?(2011
职务侵占罪中的民事责任指的是什么
小孩l周岁吃人奶要是离婚小孩一般叛给父亲还
形容城市美丽的成语有哪些
推荐资讯
盆栽石榴可以太阳晒吗
家里没拉网线,怎样能不花钱上网
怀化现有多少通向全国的高铁
玉田老酒怎么样辨别真假 在哪才能买到纯正的
谁知道呼和浩特芳汀花园 上小学和初中都能上
航发推力是空气反作用力还是根据动量守恒得到
6p手机手电筒怎么打开
乳山市信悦美服装有限公司在哪里啊,我有事要
菜鸟驿站(徐州新吴庄东区12号楼5单元店)地址
柏禾宝贝亲子儿童乐园在哪里啊,我有事要去这
《非诚勿扰》俩个和尚当住持
银湖公寓这个地址在什么地方,我要处理点事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?