`

多级分组

    博客分类:
  • DB2
阅读更多
  • 多集分组

select a,b,count(*) from tab1,tab2

group by

 grouping sets(a,(a,b))

 having grouping(a)=1

 

Tip:

grouping(a)值为1时,代表统计的是a列,以除a以外的列分组

 

例1:

select a,b,count(*) as sum from tab1 group by a grouping sets(a,b);

=

select a,count(*) as sum from tab1 group by a ;

+

select b,count(*) as sum from tab1 group by b ;

 

例2:

 

--()增加总计

select a, b,count(*) from tbname group by grouping sets(a,(a,b),());
=
 select count(*) from tbname;

+
 select a,count(*) from tbname group by a;

+
 select a,b,count(*) from tbname group by a,b

 

 

  • 增加总计

select value(char(a),'all'),

         value(char(b),'all b '),

count(*)

from tab1,tab2

where tab1.n=tab2.n

group by (char(a),(char(a),b),()); 

 

Tip:

value(a,b) 当a为空值时,返回b的值.用法与COALESCE相当,注意a与b的类型必须相同

  • rollup

group by rollup(a,b,c) order by a,b,c 

 

 

rollup(a,b,c)=group by(a,b,c)+group by(a,b)+group by (a)+group by(全部)

 

  • cube

group by cube(a,b,c) order by a,b,c

group by a,b,c with cube

 

cube(a,b,c)=group by(a,b,c)+group by(a,b)+group by(a,c)+group by(a)+group by(b,c)+group by(b)+group by(c)+group by(全部)

 

  • 美化合计结果

select Decode(Grouping(a),1,'a统计',a) ,Decode(Grouping(b),1,'b统计',b) ,count(*) from tbname group by grouping sets(a,b)

 

Tip:

decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)

该函数的含义如下:
IF 条件=值1 THEN
    RETURN(翻译值1)
ELSIF 条件=值2 THEN
    RETURN(翻译值2)
    ......
ELSIF 条件=值n THEN
    RETURN(翻译值n)

ELSE
    RETURN(缺省值)
END IF

 

分享到:
评论
1 楼 sue 2012-03-19  
mysql> SELECT a,b,c,sum(d)
    -> FROM table
    -> GROUP BY a,b,c WITH ROLLUP

相关推荐

    Java在Excel中创建多级分组、折叠或展开分组的实现

    Java在Excel中创建多级分组、折叠或展开分组的实现 Java在Excel中创建多级分组、折叠或展开分组的实现是指通过Java程序在Excel中创建多级分组、折叠或展开分组的方法。在Excel中,分组可以对行或列进行分组,并设置...

    Kendoui grid多级分组表格展现

    应用kendoui grid实现的多级分组表格展现,里面包含了表格的分组统计以及单表合计功能、还有针对表格的刷新以及子表格刷新功能。此功能是在原有demo版本上改进,增加了很多的个别需求实现,在原来的版本是做不到的。...

    JS_layui数据表格分组展示控件

    * 1、支持多级分组; * 2、支持自定义分组标题; * 3、支持分组数据行数显示; * 4、所有行数据会增加属性: * $treetype as [d|g] : 数据类型(d:数据;g:分组) * $treeid : 数据分组ID(分组:父ID+id;数据...

    pandas多级分组实现排序的方法

    下面小编就为大家分享一篇pandas多级分组实现排序的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    ios-自定义三级分组.zip

    自定义三级分组, 拓展性强,可以使用一个 tableview 实现多级分组,只需要定义好每个分组的级别, 根据级别调整界面显示就可以了, 界面实现了可以选择全部,也可以选择分组的全部 if (model.levelType == Level_Type...

    echarts自定义分组,x轴分级,支持多级,支持dataZoom

    在本文中,我们将深入探讨如何使用ECharts,一个流行的JavaScript数据可视化库,来实现自定义分组、X轴分级以及支持多级和dataZoom功能。ECharts提供了丰富的图表类型和高度定制化的选项,使得开发者能够根据需求...

    vue多级复杂列表展开/折叠及全选/分组全选实现

    在学习和实现Vue多级复杂列表的展开/折叠及全选/分组全选功能时,我们需要关注一些关键技术和实现方法。首先,我们要了解如何构建数据结构,这是展示列表的基础。然后,我们需要掌握如何通过数据驱动的方式初始化...

    C#创建Excel多级分组的方法

    在C#编程环境中,创建Excel多级分组是一项常见的任务,尤其在处理大量结构化数据时,多级分组能够帮助我们更好地组织和呈现信息。本文将详细介绍如何使用C#来实现这一功能,并通过示例代码展示具体的操作步骤。 ...

    jquery.tabelizer:表的多级分组指标

    表的多级分组指示符。 Tabelizer 1.0.3-表的多层次分组指示器1.0.3版需要jQuery v1.6 +和jQuery.ui核心 版权所有(c)2014 Rafael Huisman Dual已获得MIT和GPL许可: : 演示: : 用法示例: $('#table1')...

    多层分组表头导出Excel与后台JAVA交互

    根据前台表样已定义好的高级表格,而当前表格的HeaderColumn部份为高级分组,即多层分组列,将我们前所见即所得,点击导出按钮后,直接根据数据的逻辑,自动生成了多层组表的表头部份数据样式。 文件夹中附有源代码...

    下拉框(select),可以多选,带有分组搜索功能

    在本场景中,我们讨论的是一个具有特定增强功能的下拉框,它支持多选、分组以及搜索功能。这样的组件在处理大量数据或需要用户提供多个选择时特别有用。下面我们将详细探讨这些特性。 1. **多选功能**:在传统的...

    listview 分组显示+可展开分组+每个item可左右滑动

    标题“listview 分组显示+可展开分组+每个item可左右滑动”和描述“listview 分组显示+可展开分组+每个item可左右滑动+多级分组”揭示了几个关键的实现需求: 1. **分组显示**:ListView可以被组织成多个分组,每个...

    java集合分组(Guava)

    例如,我们可以使用`groupingBy`的多级分组,或者对分组结果进行进一步的收集操作。下面是一个多级分组的例子: ```java Map, Map, List<Person>>> peopleByGenderAndCity = people.stream() .collect(Collectors....

    Oracle分组统计

    这条语句将对 te 表中的数据进行多级分组统计,首先按照 t_project 和 t_dept 列进行分组,然后按照 t_dept 列进行分组,并对每个组进行 SUM(t_amount) 的聚合计算。 Grouping Sets 是一种功能强大且灵活的分组统计...

    java实现分组聚合

    在实际开发中,你可能还需要考虑多级分组、并行流优化、性能影响等因素。熟练掌握这些技巧,能让你在处理大量数据时更加游刃有余,提高代码的可读性和效率。在Java的集合框架和流API中,分组聚合是一个强大而灵活的...

    如何在水晶报表中分组汇总记录

    3. 可以通过点击分组头来调整分组的顺序,或者添加更多分组级别,实现多级分组。 4. 要显示分组数据,可以在细节区添加字段。这些字段会根据所选分组进行重复显示。 5. 设置分组选项,如排序依据、隐藏/显示分组头等...

    可分组定时多功能插座

    在这种背景下,我们设计并实现了一款“可分组定时多功能插座”,它不仅能够满足人们日常生活中对电源控制的多样化需求,而且可以提供更为安全可靠的用电环境。 本款插座的核心在于采用单片机作为控制中心。单片机是...

    仿QQ多级列表源代码

    【仿QQ多级列表源代码】是一个编程项目,旨在实现类似QQ应用中的多级分组列表功能。在软件开发中,特别是在移动应用开发领域,这种功能常见于消息、联系人或者菜单的组织结构中,允许用户以清晰的方式浏览和操作层次...

Global site tag (gtag.js) - Google Analytics