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

    文章

    789

    浏览量

    46379
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NVIC中断屏蔽的具体作用是什么?

    NVIC 中断屏蔽的具体作用是什么?
    发表于 12-05 06:06

    进行滤波器的谐波测试,作用是什么

    进行滤波器的谐波测试,作用是什么,没理解?测三个频点来看超过规定值没
    发表于 06-23 19:19

    高压放大器的作用是什么

    高压放大器的核心作用之一是信号放大。在许多电子系统和应用场景中,初始的电信号往往较为微弱,无法直接驱动后续的负载设备或满足特定的电压需求。例如在科研实验中的高精度传感器,其输出的信号可能只有毫伏级
    的头像 发表于 06-10 18:04 424次阅读
    高压放大器的<b class='flag-5'>作用是</b>什么<b class='flag-5'>呢</b>

    电抗器的作用是什么

    电抗器
    特高压电力
    发布于 :2025年04月29日 09:45:06

    DLPC3439的中的3DR引脚的作用是什么?

    请问一下 1.DLPC3439的中的3DR引脚的作用是什么? 2.该引脚该如何配置?只要给它输入一个高电平就可以了吗? 3.对于双控制器来说,是不是主控制器和从控制器的3DR引脚配置相同? 非常感谢
    发表于 02-24 08:28

    关于ads1298的右腿驱动部分,有一个右腿驱动参考电压,请问这个参考电压的作用是什么啊,是由什么决定的

    关于ads1298的右腿驱动部分,有一个右腿驱动参考电压,可以外接,或内部产生,请问这个参考电压的作用是什么啊,是由什么决定的
    发表于 02-13 06:30

    ADS4125数据输出口接了缓存器和排阻,这排阻的作用是什么

    什么都没变,什么原因引起这么大差异?问题2:在ADS4125数据输出口接了缓存器和排阻,这排阻的作用是什么,是做匹配还是当上拉电阻用
    发表于 02-07 08:45

    ADS1298配置寄存器3:RLD_LOFF_SENS位的控制作用是什么

    关于配置寄存器3:RLD_LOFF_SENS位 的控制作用是什么?谁能告诉我,O(∩_∩)O谢谢!
    发表于 02-06 07:31

    ads1174中的DIN脚的功能说是Daisy-chain,作用是什么?

    我看的ads1174中的DIN脚的功能说是Daisy-chain,也就是雏菊链的意思,请问他的作用是什么?求解答
    发表于 02-05 06:23

    高度ADC输入缓冲器作用是什么?

    高速ADC内部都集成了输入缓冲器,我想知道输入缓冲器作用是什么,对信号动态范围有多大改善,对噪声抑制有什么帮助?
    发表于 01-15 06:24

    TIDA-00360输出频率50MHz 至 3760MHz有什么作用

    我想测量gis的局部放电uhf,频率范围400到1500MHZ,请问这个TIDA-00360的作用是降频然后进行ad转换么,可以实现我的功能吗。如果可以,那么TIDA-00360是将400到
    发表于 01-07 06:55

    安泰:电压放大器原理和作用是什么意思

    电压放大器是电子电路中常见的一种重要部件,其作用是将输入信号的电压放大到较高的电压水平,以便驱动输出负载或提供所需的信号增益。本文将从电压放大器的原理、工作方式、种类以及应用等方面,详细介绍
    的头像 发表于 01-02 14:12 783次阅读
    安泰:电压放大器原理和<b class='flag-5'>作用是</b>什么意思

    安泰高压大功率放大器的作用是什么

    高压大功率放大器是一种特殊类型的放大器,具有较高的电压和功率处理能力。的主要作用是将输入信号的电压增加到更高的水平,并提供足够的功率来驱动负载或激发其他设备。以下是高压大功率放大器的几个重要
    的头像 发表于 12-25 11:10 808次阅读
    安泰高压大功率放大器的<b class='flag-5'>作用是</b>什么

    ADS1299偏置电极的作用是什么?为什么要有这样一个电极?

    以下几点: 1.偏置电极的作用是什么?为什么要有这样一个电极?BIAS_ELEC和bias drive有什么联系? 2.patient bias signal有两种产生方式即either through
    发表于 12-20 06:18

    AFE4400血氧模块的AFE_PDNZ管脚是输入口还是输出口,作用是什么样的?

    请教一下AFE4400血氧模块的AFE_PDNZ管脚是输入口还是输出口,作用是什么样的?是不是寄存器配置好以后,期间会自动工作?
    发表于 12-17 07:52