0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是pergroups呢,它的作用是什么?

微云疏影 来源:yzsDBA 作者:yzsDBA 2022-08-11 15:43 次阅读

学习PG聚合操作机制时,看到ExecInitAgg中初始化时有对AggState中有pergroups等进行初始化[AggState的解释见上一篇:GreenPlum7聚合操作结构体之间关系

那么什么是pergroups呢,它的作用是什么?

ExecInitAgg中:可以看到组数等于组集合数(若没hash的话),每个分组中有numaggs个聚集

pYYBAGL0szKAPzviAAEYXP45KsU570.jpg

这里就需要理解什么是grouping sets。

PostgreSQL9.5版本引入了group by的分组集合功能,提供了GROUPING SETS,CUBE,ROLLUP参数。这些新的标准SQL选项可以让用户在一次查询中生成多个不同级别或者多维度的报表,而不是像以前一样需要几次查询。

postgres=# create table t1(id1 int,name varchar(20),class int,score int);

CREATE TABLE

postgres=# select * from t1; id1 | name | class | score

-----+----------+-------+-------

1 | math | 1 | 50

2 | math | 2 | 90

3 | math | 1 | 70

5 | chinese | 1 | 50

6 | chinese | 2 | 60

4 | chinese | 2 | 60

7 | physical | 1 | 90

8 | physical | 2 | 80

(8 行记录)

首先看下普通的group by:根据name和class字段求和:

pYYBAGL0szKAS2wLAAC1lhYw0rA340.jpg

可以看到到仅一个聚合分类。那么再看下GROUPING SETS语法:

poYBAGL0szKADVsXAACSPpulY1c356.jpg

有3种聚合分类:1)针对name进行分组然后求sum值;2)针对class进行分组,然后求sum值;3)grouping sets种的空,表示所有行都聚合到一个分组中。

需要注意,grouping sets的集合中,一个括号一个分组,如下(name,class)为一个分组。该语句等价于普通的group by。

pYYBAGL0szOAMJ0-AACcjrblsLE395.jpg

总结:grouping sets中有一个集合,则有一个聚合;若有2个集合,则2个聚合。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SQL
    SQL
    +关注

    关注

    1

    文章

    738

    浏览量

    43460
收藏 人收藏

    评论

    相关推荐

    ADE7880增益的作用是什么

    您好: 在ADE7880的文档中说ADE的采样输入都具有一个可编程的增益,可设计成1,2,4,8或16,那么这个增益的作用是什么?选择的依据又是什么?如果我增益选择了8,那么在后续的处理中
    发表于 12-27 07:03

    AD9215输入端串联的33欧电阻的作用是什么?

    在看AD9215的参考电路时,注意到信号输入端都串联一个33欧电阻,并且引脚对地接一个电容,这个电阻的作用是什么?仅仅是和电容构成低通滤波器的吗? 如下图中所标的电阻和电容的作用
    发表于 12-18 07:44

    AD5940/AD5941中在高速TIA部分,Rload负载电阻的具体作用是什么?怎么选取的值?

    AD5940/AD5941中在高速TIA部分,Rload负载电阻的具体作用是什么?怎么选取的值?按道理将这边是TIA电路,(完成IV转换即可)应该不需要Rload.
    发表于 11-30 07:27

    熔丝位的作用是什么?如何设置熔丝位

    熔丝位的作用是什么?如何设置熔丝位? 给个清晰明白的理解。
    发表于 11-06 07:14

    堆栈指针的作用是什么?

    堆栈指针的作用是什么
    发表于 11-02 08:10

    什么是EEPROM?作用是什么?

    什么是EEPROM,作用是什么
    发表于 10-31 08:15

    晶振的作用是啥?

    晶振的作用是啥?只是为了提供时钟周期吗?
    发表于 10-25 07:19

    仿真器作用是什么?

    仿真器的作用是什么?
    发表于 10-19 06:43

    电梯物联网的作用是什么?

    电梯物联网的作用是什么?
    的头像 发表于 09-13 13:56 1157次阅读

    桥堆的作用是什么?桥堆整流后电压是多少?

    桥堆的作用及工作原理解读 桥堆的作用是什么?桥堆整流后电压是多少?  桥堆是一种常用的电路,广泛应用于电力电子系统中。桥堆是一种全波整流电路,其作用是将交流电转换成直流电。桥堆常用于电源中,如电脑
    的头像 发表于 08-24 15:17 4214次阅读

    晶振的作用是什么?四个作用要知道

    晶振的全名是晶体振荡器,光听名字的就知道的作用吧!主要是晶振在电路中起着产生震荡频率的作用,这种作用是比较重要的,因为他晶振是单片机的心脏,可见作用很大。
    的头像 发表于 07-18 10:21 1.1w次阅读
    晶振的<b class='flag-5'>作用是</b>什么?四个<b class='flag-5'>作用</b>要知道

    安全光栅中的投光器的作用是什么?

    安全光栅中的投光器的作用是什么?
    的头像 发表于 06-25 13:46 290次阅读
    安全光栅中的投光器的<b class='flag-5'>作用是</b>什么?

    安全光栅中的投光器的作用是什么?

    安全光栅中的投光器的作用是什么?
    的头像 发表于 06-15 16:51 432次阅读
    安全光栅中的投光器的<b class='flag-5'>作用是</b>什么?

    无线电通信为什么要使用载波发射?其作用是什么

    无线电通信为什么要使用载波发射?其作用是什么
    发表于 05-10 17:15

    马达电路中的电容和电感的作用是什么?

    大家好,请问这个电路中,C7,C8的作用是什么,C6的作用又是什么?L1,L2的作用是什么?大佬普及一下,多谢。
    发表于 05-01 20:51