postgresql 分组

news2024/12/23 22:12:09

postgresql 数据汇总

  • 分组汇总
    • 聚合函数
      • 注意
    • 总结
  • 分组统计
    • 总结
  • 高级分组
    • 总结

分组汇总

聚合函数

聚合函数(aggregate function)针对一组数据行进行运算,并且返回单个结果。PostgreSQL
支持以下常见的聚合函数:

AVG - 计算一组值的平均值。
COUNT - 统计一组值的数量。
MAX - 计算一组值的最大值。
MIN - 计算一组值的最小值。
SUM - 计算一组值的和值。
STRING_AGG - 连接一组字符串。

-- 部门所有员工的平均薪水、员工总数、最高薪水、最低薪水、以及薪水总计
-- 聚合函数忽略NULL数据行,count(*)除外
-- 聚合函数中的distinct会对数据去重
SELECT AVG(salary),
 COUNT(distinct manager_id),
 MAX(salary),
 MIN(salary),
 SUM(salary)
 FROM employees;

在这里插入图片描述

-- 字符串的聚合
SELECT string_agg(first_name,';' order by first_name)
 FROM employees;

在这里插入图片描述

注意

  • 函数参数前添加 DISTINCT 关键字,可以在计算时排除重复值。
  • 忽略参数中的 NULL

总结

在这里插入图片描述

分组统计

-- 分组统计
-- extract 提取
-- extract(year from hire_date) 统计入职日期按年
SELECT extract(year from hire_date) as years,count(*)
 FROM employees
 group by  extract(year from hire_date);
 -- 上述sql可以简写为如下sql
 -- group by 1表示按照查询的第一列分组
 SELECT extract(year from hire_date) as years,count(*)
 FROM employees
 group by 1;
 -- 统计每年每个部门有多少人入职
 SELECT extract(year from hire_date) as years,department_id,count(*)
 FROM employees
 group by 1,2;

总结

在这里插入图片描述

高级分组

create table sales(
item varchar(10),
year varchar(4),
quantity int
);
insert into sales values('apple','2018',800);
insert into sales values('apple','2018',1000);
insert into sales values('banana','2018',500);
insert into sales values('banana','2018',600);
insert into sales values('apple','2019',1200);
insert into sales values('banana','2019',1800);
-- rollup向上翻滚
select item,year,sum(quantity)
from sales
group by rollup(item,year);
-- rollup相当于group by item,year+group by item+sum(quantity)
-- rollup按照层级进行分组
-- coalesce去除非空字段
select coalesce(item,'所有产品') as "产品",coalesce(year,'所有年份')as "年份",sum(quantity)
from sales
group by rollup(item,year);

在这里插入图片描述

总结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/892793.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LLM - 大模型评估指标之 ROUGE

目录 一.引言 二.ROUGE-简介 1.ROUGE-N 2.ROUGE-L 3.ROUGE-W 4.ROUGE-S 三.ROUGE-实现 1.How To Use 2.Inputs 3.Outputs 四.总结 一.引言 ROUGE 代表面向召回的研究,用于 Gisting 评估。它包括通过将摘要与人类创建的其他摘要进行比较来自动确定摘要质…

BC108 矩阵交换

描述 KiKi有一个矩阵,他想知道经过k次行变换或列变换后得到的矩阵。请编程帮他解答。 输入描述 第一行包含两个整数n和m,表示一个矩阵包含n行m列,用空格分隔。 (1≤n≤10,1≤m≤10) 从2到n1行,每行输入m个整数(范围-…

【Linux操作系统】深入探索Linux进程:创建、共享与管理

进程的创建是Linux系统编程中的重要概念之一。在本节中,我们将介绍进程的创建、获取进程ID和父进程ID、进程共享、exec函数族、wait和waitpid等相关内容。 文章目录 1. 进程的创建1.1 函数原型和返回值1.2 函数示例 2. 获取进程ID和父进程ID2.1 函数原型和返回值2.…

消息中间件-kafka实战-第六章-kafka加线程池多线程消费

目录 参考架构图延时队列 参考 头条面试:当线上Kafka集群有大量消息积压时,如何利用多线程消费解决消费积压问题 架构图 延时队列

Python查找交作业人数

写在前面: 利用Python实现交作业具体情况,能够高效快捷地收集作业! 一、问题:获取test文件夹下的所有文件 二、Python中os.listdir()函数的用法 (一)os.listdir()函数的基本用法 os.listdir()函数的基本…

linux系统中的中文显示问题

经常遇到这种情况:某些项目的文件中不可避免地包含有中文,在Windows系统中没有任何问题,拷到Linux系统中就出问题了。 1. Linux系统设置 $echo $LANG en_US.iso885915 朋友建议我设置为: export LANGzh_CN.utf8 但我这样设置之…

CSS中的z-index属性有什么作用?如何控制元素在层叠上下文中的显示顺序?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ z-index 属性的作用及控制元素层叠顺序作用 ⭐ 控制元素层叠顺序⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff0…

什么是flexbox布局?它有什么特点和优势?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 什么是 Flexbox 布局?⭐ 特点和优势⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那…

数据结构,线性表,顺序表基础。

1.线性表 线性表特征&#xff1a; 对非空表&#xff0c;a0是表头&#xff0c;无前驱a(n-1)是表尾&#xff0c;无后继其他的都有ai前驱a(i-1)与后继a(i1)。 2、顺序结构存储方式是线性表存储的一种方式&#xff0c;主要体现形式为数组。 #include<stdio.h> #include<st…

密码学学习笔记(十八):Diffie–Hellman (DH) 密钥交换

DH算法是第一个密钥交换算法&#xff0c;也是第一个得到形式化描述的公钥密码算法。 群论 DH密钥交换算法基于数学中的群论&#xff0c;群论也是当今大多数公钥密码的基础。 要使集合及其运算成为一个群&#xff0c;需要满足以下性质&#xff1a; 封闭性&#xff1a;群中两…

Eureka 的几种主动下线服务的方式

补充&#xff1a;在启动eureka服务的时候发现控制台有以下的输出 由此猜想可以通过改接口下线服务&#xff0c; 于是尝试了一下。 果然能从注册中心中移除该实例。 1. 直接停掉服务。 默认情况下&#xff0c;如果Eureka Server在90秒没有收到Eureka客户的续约&#xff0c;它…

树莓派+WordPress:打造专属博客,内网穿透轻松发布到公网!

概述 在本次教程里&#xff0c;我们将在树莓派上搭建一个Wordpress博客站点&#xff0c;开始博客时代&#xff0c;记录生活点滴。同时做内网穿透将博客发布上线&#xff0c;让互联网用户都可以访问到&#xff0c;无需公网ip&#xff0c;也无需购买云服务器&#xff0c;简单快速…

内网隧道代理技术(十六)之 FRP的使用

FRP的使用和介绍 FRP介绍 FRP (Fast Reverse Proxy) 是一个使用 Go 语言开发的高性能的反向代理应用,可以轻松地进行内网穿透,对外网提供服务。FRP 支持 TCP、UDP、HTTP、HTTPS等协议类型,他支持点对点的转发,还有全流量转发,FRP最大的一个特点是使用SOCKS代理,而SOCKS…

10----超链接

在 Markdown 里可以创建超链接&#xff0c;以链接到其他 Markdown 页面或网站。 一、行内超链接&#xff1a; 行内式超链接是Markdown中创建超链接的一种方式&#xff0c;它的语法相对简单&#xff0c;适合在文本中直接插入链接。 1.链接到网站&#xff1a;[链接文本](链接地…

排序+运算>直接运算的效率的原因分析

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

Facebook 应用未启用:这款应用目前无法使用,应用开发者已得知这个问题。

错误&#xff1a;Facebook 应用未启用:这款应用目前无法使用&#xff0c;应用开发者已得知这个问题。应用重新启用后&#xff0c;你便能登录。 「应用未经过审核或未发布」&#xff1a; 如果一个应用还没有经过Facebook的审核或者开发者尚未将应用发布&#xff0c;那么它将无法…

MySQL数据库——图形化界面工具(DataGrip),SQL(2)-DML(插入、修改和删除数据)

目录 图形化界面工具&#xff08;DataGrip&#xff09; 下载及安装 启动及连接 使用 创建数据库 创建表结构 编写SQL DML 插入 更新和删除 1.修改数据 2.删除数据 总结 图形化界面工具&#xff08;DataGrip&#xff09; 下载及安装 DataGrip下载链接&#xff1a;…

如何使用HTML5新增的表单元素来增强表单功能?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 1. <input type"email"> 和 <input type"url">⭐ 2. <input type"tel">⭐ 3. <input type"date">、<input type"time"> 和 <input type"datet…

求解方程sympy.solve

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 求解方程 sympy.solve [太阳]选择题 下列代码最后一次输出的结果是&#xff1f; import sympy x sympy.symbols(x) y x**2 2*x - 3 print("【执行】sympy.solve(y, x)") print(s…

TIA博途中打开全局库al文件以及压缩库zal文件的具体方法示例

TIA博途中打开全局库al文件以及压缩库zal文件的具体方法示例 本例中所有的库文件均以博途V15软件为例进行说明,其他版本的博途软件可能稍有区别,但总体相同。 如下图所示,打开博途软件后,在右侧的“库”—全局库,点击打开图标, 如下图所示,此时在弹出的窗口中找到后缀名…