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

    文章

    807

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    功率分析仪作用是什么

    的应用。本文将详细介绍功率分析仪的作用和用途。 一、功率分析仪的作用 1、测量电能参数 功率分析仪可以测量电能参数,包括有功功率、无功功率、视在功率、功率因数等。这些参数是电力系统和电力设备的基本参数,它们的测量
    的头像 发表于 04-17 18:20 59次阅读
    功率分析仪<b class='flag-5'>作用是</b>什么<b class='flag-5'>呢</b>

    请问GPIO在微控制器中的作用是什么?

    GPIO在微控制器中的作用是什么?
    发表于 12-25 06:46

    MOSFET在电源控制中的作用是什么?

    请问MOSFET在电源控制中的作用是什么?
    发表于 12-16 06:37

    接地电阻测试仪作用是什么?主要由什么组成?

    由什么组成的?跟着易造小编一起来了解一下吧。 一、接地电阻测试仪的作用是什么? 接地电阻测试仪是用来实时监测接地电阻值的设备。在防雷系统中,接地电阻值影响外部防雷系统的雷电流泄放能力。如果接地电阻值异常升高,
    的头像 发表于 12-13 17:40 1442次阅读
    接地电阻测试仪<b class='flag-5'>作用是</b>什么?主要由什么组成?

    CW32R031C8U6 集成balun,请问一下,这个balun是啥?其作用是什么?

    CW32R031C8U6 集成balun,请问一下,这个balun是啥?其作用是什么?
    发表于 12-10 06:19

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

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

    rt_mq_recv函数中timeout作用是什么?

    的值,并不被使用。 请问下这部分代码作用是什么了? /* message queue is empty */ while (mq-&gt;entry == 0
    发表于 09-29 06:27

    请问NUC505 中的 VMID 引脚的作用是什么?如何设计电路图?

    NUC505 中的 VMID 引脚的作用是什么?如何设计电路图?
    发表于 08-28 06:26

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

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

    高压放大器的作用是什么

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

    晶振电路中电容的作用是什么

    无论是智能手机、微控制器、电脑,还是工业自动化控制系统,需要时钟信号的电子设备中都能看到晶振的身影。在电路图上,晶振旁边常常配有两个电容。这两个电容到底起着怎样的作用?
    的头像 发表于 05-29 16:55 2036次阅读
    晶振电路中电容的<b class='flag-5'>作用是</b>什么

    超高电压放大器的作用是什么

    电压放大器的作用、特点、应用领域以及设计考虑因素。 一、超高电压放大器的基本作用 超高电压放大器的主要作用是对输入信号的电压幅度进行放大。在电子系统中,许多传感器输出的信号非常微弱,这些信号如果直接进行处理或传
    的头像 发表于 05-20 11:15 850次阅读
    超高电压放大器的<b class='flag-5'>作用是</b>什么

    请问EZ-PD™ PMG1-S3 PD SBU MUX中SBU线上的比较器的作用是什么?

    EZ-PD™ PMG1-S3 PD SBU MUX 中 SBU 线上的比较器的作用是什么?
    发表于 04-30 07:27

    电抗器的作用是什么

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

    电路询问:请问图片中R11的具体作用是什么?它是怎么能调节LED亮度?

    请问图片中R11的具体作用是什么?它是怎么能调节LED亮度?
    发表于 04-25 10:00