postgresql9.5新特性GROUPING SETS, CUBE, and ROLLUP
先来看看grouping set的例子:
Grouping set就是对列出的每一个字段组进行group by操作,如果字段组为空,则不进行分组处理。 再来看rollup函数:
可以发现rollup(id1,id2,id3)和grouping set((id1,id3),(id1,id2),(id1),())是等效的。 再来看cube函数: 可以发现,cube(a,b,c)和grouping sets((a,c),(a,b),(a),(b,(b),(c),())是等效的。 GROUPING函数,grouping函数返回一个二进制数字的十进制表示。看例子: 第一行,分组包括id1和id2,二进制数字是:00,转化为十进制:0; 第二行,分组包括id1和id2,二进制数字是:00,转化为十进制:0; 第三行,分组包括id1,不包括id2,二进制数字是:01,转化为十进制:1; 第四行,分组包括id1和id2,二进制数字是:00,转化为十进制:0; 第五行,分组包括id1和id2,二进制数字是:00,转化为十进制:0; 第六行,分组包括id1,不包括id2,二进制数字是:01,转化为十进制:1; 第七行,分组不包括id1,不包括id2,二进制数字是:11,转化为十进制:3。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |