GROUPING函数可以接受一列,返回0或者1。如果列值为空,那么GROUPING()返回1;如果列值非空,那么返回0。GROUPING只能在使用ROLLUP或CUBE的查询中使用。当需要在返回空值的地方显示某个值时,GROUPING()就非常有用。

用下面的sql执行一下,就可以知道group by rollup和grouping的用法

with a as (select 'dev1' col1,'file1' col2,'aa' col3,'bb' col4,1 col5 from dual

union all select 'dev1' col1,'file2' col2,'cc' col3,'dd' col4,3 col5 from dual
  union all select 'dev2' col1,'file3' col2,'ee' col3,'ff' col4,7 col5 from dual 
  union all select 'dev2' col1,'file4' col2,'gg' col3,'hh' col4,4 col5 from dual
  )
select case  when grouping(col1)=1 and grouping(col2)=1 then '总计' when grouping(col2)=1 then '合计' else col1 end as col_1,
       case grouping(col2) when 1 then '- -' else col2 end as col_2,
       case grouping(col3) when 1 then '- -' else col3 end as col_3,
       case grouping(col4) when 1 then '- -' else col4 end as col_4,
       sum(col5)
from a
group by rollup(col1,(col2,col3,col4));

group by rollup 和grouping的使用实例相关推荐

  1. cube、rollup及exec的用法实例

    为什么80%的码农都做不了架构师?>>>    cube.rollup及exec的用法实例 select sdept 系部,sno 学号,max(sage) 最大年龄,   grou ...

  2. [转]详解Oracle高级分组函数(ROLLUP, CUBE, GROUPING SETS)

    原文地址:http://blog.csdn.net/u014558001/article/details/42387929 本文主要讲解 ROLLUP, CUBE, GROUPING SETS的主要用 ...

  3. group by rollup | cube 学习

    1.如果是ROLLUP(A, B, C)的话,首先会对(A.B.C)进行GROUP BY,然后对(A.B)进行GROUP BY,然后是(A)进行GROUP BY,最后对全表进行GROUP BY操作. ...

  4. oracle按层级分组,oracle按照指定列分组合计group by rollup()

    group by rollup() 按分组合计 select grouping(status),status,owner,object_type,count(*) from dba_objects w ...

  5. Oracle 聚合实现小计、合计 (GROUP BY ROLLUP)

    1.先创建一个测试表 -- Create table 水果月销售记录表 create table C_FRUITS_SALES_RECORD_T (quarter VARCHAR2(20),--季度m ...

  6. group by rollup

    首先引用ITPUB上的总结: rollup(a,b,c)----------------> 从右到底递减汇总 ====>group by a,b,c   (减0次) UNION ALL = ...

  7. ORACLE中每个分组后加个合计,最后总合计的GROUP BY rollup,和中文排序

    参考代码如下 SELECT LOCAL_NAME ,DEPT_DISTINGUISH_NAME ,SUM(TOTAL_PAY_SUM_R_LDC) TOTAL_PAY_SUM_R_LDC ,SUM(B ...

  8. postgre——case、union、小计总计(GROUP BY ROLLUP)写法

    //将几张不同表结构的数据全部合并在一起,使用了case.union,同时实现小计总计 //小计总计使用的 GROUP BY ROLLUP函数,GROUP BY ROLLUP使用双括号将字段括起来,是 ...

  9. SQL SERVER 关于with cube ,with rollup 和 grouping sets、group by

    GROUPING 运算符 with cube with rollup grouping sets with cube cube运算符在 SELECT 语句的 GROUP BY 子句中指定.该语句的选择 ...

最新文章

  1. 麻省理工和 IBM 合作创立 Watson AI 实验室,谨慎推进 AI 研究
  2. android开发--详解ListView,动态添加,删除Adapter中的数据项
  3. php模板技术smarty,PHP模板技术Smarty
  4. dup,dup2函数
  5. C:\WINDOWS\WinSxS目录介绍,来自百度词条
  6. SQL Server 中使用 Try Catch 处理异常
  7. android中心类库
  8. modprobe: FATAL: Module xxx.ko not found in directory /lib/modules/$(uname -r)
  9. java api项目配置统一的错误返回json提示
  10. oracle 10修改字符集,Oracle 10g修改数据库字符集
  11. angular使用动态组件后属性值_Angular 2-组件
  12. 在Nginx服务器上用Jenkins发布Vue/React代码的步骤
  13. 基于matlab的数字水印技术研究,MATLAB在数字水印技术研究中的应用
  14. 用DVD镜像离线安装Debian的软件包
  15. 三坐标检测之报告查看T值
  16. 从技术问题变成RPWT
  17. 显示器3d测试软件,IPS显示屏/裸眼3D显示原理及3D应用
  18. 发送的邮件被标记垃圾邮件_如何以HTML格式标记跨邮件通讯
  19. 编写lisp程序解一元二次方程_vb解一元二次方程代码
  20. 瀚高数据库故障诊断指导方案

热门文章

  1. 浅析区块链应用系统——区块链追踪溯源应用
  2. 第3章 使用SQL*Plus
  3. 腾讯移动安全实验室全年手机病毒行业报告
  4. 在线html 快速拨号,鸿言快速拨号——替代浏览器自带的快速拨号
  5. 对于vector中高效删除中间元素的技巧
  6. 树莓派开机自动连接WIFI直接VNC连接界面
  7. ios 5.1.1完美越狱工具Absinthe 2.0windows/mac/linux版本下载地址lwxshow.com首发,新增迅雷下载
  8. Android Treble架构学习
  9. 【转】16GB大内存该怎么玩儿?
  10. 仿iPhone天气预报