oracle rollup 如何去掉最后一行的总统计
答案:2 悬赏:30
解决时间 2021-01-12 22:43
- 提问者网友:活着好累
- 2021-01-12 19:01
oracle rollup 如何去掉最后一行的总统计
最佳答案
- 二级知识专家网友:第四晚心情
- 2021-01-12 20:19
select ... from 表 group by rollup(.....) having grouping_id(....)<=1
总计是grouping_id=3
小计grouping_id=1
记录是grouping_id=0
grouping_id中括号里面的字段和rollup括号里面的字段一致就行追问大侠,你好请问grouping_id是肿么来的,追答oracle的函数,针对rollup和cube的追问大侠,你好,灰常感谢,我的问题解决了,只是还要向您讨教一下,那个grouping_id的数字是怎么确定的,假如我rollup(...)里面有两个列,那么grouping_id(..)的最大值是多少呢,假如是三列呢。。。望请赐教。追答向量值,可以认为是二进值的数,例:grouping_id(a,b,c),a为空就是0非空为1,b和c也一样,结果会得到一个三位数,用二进制转换成十进制就是了,例:a,b,c全是非空,即111就是7,三列就是7,如果是两列自然是11就是3了
总计是grouping_id=3
小计grouping_id=1
记录是grouping_id=0
grouping_id中括号里面的字段和rollup括号里面的字段一致就行追问大侠,你好请问grouping_id是肿么来的,追答oracle的函数,针对rollup和cube的追问大侠,你好,灰常感谢,我的问题解决了,只是还要向您讨教一下,那个grouping_id的数字是怎么确定的,假如我rollup(...)里面有两个列,那么grouping_id(..)的最大值是多少呢,假如是三列呢。。。望请赐教。追答向量值,可以认为是二进值的数,例:grouping_id(a,b,c),a为空就是0非空为1,b和c也一样,结果会得到一个三位数,用二进制转换成十进制就是了,例:a,b,c全是非空,即111就是7,三列就是7,如果是两列自然是11就是3了
全部回答
- 1楼网友:西风乍起
- 2021-01-12 21:17
可以使用GROUPING SETS来任意组合你的分组,例如
GROUP BY GROUPING SETS
((department_id,job_id), (manager_id))
这样会产生两个分组方式,分别使用department_id,job_id和manager_id追问我的意思是不要总计。只要每一组的总计,大侠帮帮忙看有没有这种用法
GROUP BY GROUPING SETS
((department_id,job_id), (manager_id))
这样会产生两个分组方式,分别使用department_id,job_id和manager_id追问我的意思是不要总计。只要每一组的总计,大侠帮帮忙看有没有这种用法
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯