postgresql 分组

news/2024/7/9 22:21:41 标签: postgresql, 数据库

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.niftyadmin.cn/n/4947957.html

相关文章

下载安装并使用小乌龟TortoiseGit

1、下载TortoiseGit安装包 官网:Download – TortoiseGit – Windows Shell Interface to Githttps://tortoisegit.org/download/ 2、小乌龟汉化包 在官网的下面就有官方提供的下载包 3、安装

PHP实现读取指定目录下的所有文件

在php中读取指定目录下的文件主要用到了opendir和readdir函数 一:opendir(打开目录句柄) 1:语法 opendir(path,context); 2:参数说明 参数描述path必需。规定要打开的目录路径。context可选。规定目录句柄的环境。context 是可修改目录流…

JavaWeb_LeadNews_Day6-Kafka

JavaWeb_LeadNews_Day6-Kafka Kafka概述安装配置kafka入门kafka高可用方案kafka详解生产者同步异步发送消息生产者参数配置消费者同步异步提交偏移量 SpringBoot集成kafka 自媒体文章上下架实现思路具体实现 来源Gitee Kafka 概述 对比 选择 介绍 producer: 发布消息的对象称…

企业微信电脑端开启chrome调试

首先: Mac端调试开启的快捷键:control shift command d Window端调试开启的快捷键: control shift alt d 这边以Mac为例,我们可以在电脑顶部看到调试的入口: 然后我们点击 『浏览器、webView相关』菜单,勾选上…

基于X86六轮差速移动机器人运动控制器设计与实现(一)软件与硬件架构

本文研究的六轮差速移动机器人 (Six-Wheeled Differential Mobile Robot , SWDMR) 为了满足资源站到资源站点对点的物资运输,对机器人的跨越障碍能力 有较高的要求。对比传统的四轮移动机器人,六轮移动机器人能够提供更强的驱动 力&#…

CF1011A Stages 题解

题目传送门 题目意思: 给你一个长度为 n n n 的字符串 a a a,在这个字符串中选一个长度为 k k k 的好串(好串标准是啥自己去题目里看吧),问这个好串的最小价值是多少。 思路: 贪心。 首先我们将字符…

制作自己的数据集并训练的YOLOv8模型

文章目录 1.制作数据集1.1 下载安装labelImg1.2 开始制作数据集 准备训练分配数据集训练测试 1.制作数据集 1.1 下载安装labelImg LabelImg源码 下载好源码并 cd到源码路径下 安装需要的环境 # 安装lxml pip install lxml# 安装pyqt5 pip install pyqt5# 将"resources…

管理类联考——逻辑——真题篇——按知识分类——汇总篇——一、形式逻辑——选言——相容/不相容选言+联言

第四节 不相容选言+相容选言-要么,要么-包含相容-“要么A要么B”为真→“A或B”为真 题—不相容选言-要么A要么B-恰有一真才真,全真全假才假- 1.某山区发生了较大面积的森林病虫害。在讨论农药的使用时,老许提出:“要么使用甲胺磷等化学农药,要么使用生物农药。前者过去…