pg14-sql基础(三)-分组统计

news2024/12/23 11:46:15

分组

SELECT hire_date, COUNT(*)
FROM employees
GROUP BY hire_date;

在这里插入图片描述

SELECT extract(year from hire_date), COUNT(*)
FROM employees
GROUP BY extract(year from hire_date);
-- GROUP BY 1;

在这里插入图片描述

SELECT extract(year from hire_date), department_id, COUNT(*)
FROM employees
GROUP BY 1,2;

在这里插入图片描述

SELECT department_id, COUNT(*)
FROM employees
GROUP BY department_id
HAVING COUNT(*)>10;
-- 对分组后的数据进行二次统计用having,不能用where

在这里插入图片描述

高级分组

测试数据

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', 180
SELECT item, year, SUM(quantity)
FROM sales
GROUP BY ROLLUP (item, year); 
/*
相当于GROUP BY item, year和GROUP BY item, SUM(quantity)和SUM(quantity)
*/

在这里插入图片描述

--美化
SELECT coalesce(item, '所有产品') AS "产品", coalesce(year, '所有年份') AS "年份", SUM(quantity)
FROM sales
GROUP BY ROLLUP (item, year);

在这里插入图片描述

SELECT coalesce(item, '所有产品') AS "产品", coalesce(year, '所有年份') AS "年份", SUM(quantity)
FROM sales
GROUP BY CUBE (item, year);
/*
相当于GROUP BY (item, year)和GROUP BY (item)和GROUP BY (year)和SUM(quantity)
*/

在这里插入图片描述

SELECT coalesce(item, '所有产品') AS "产品", coalesce(year, '所有年份') AS "年份", SUM(quantity)
FROM sales
GROUP BY GROUPING SETS ((year), (item), ());
/*
GROUPING SETS用于自定义组和,ROLLUP、CUBE是其特殊项 
*/

在这里插入图片描述

SELECT coalesce(item, '所有产品') AS "产品", coalesce(year, '所有年份') AS "年份", SUM(quantity),
    GROUPING(item), GROUPING(year), GROUPING(item,year)
FROM sales
GROUP BY GROUPING SETS ((year), (item), ());
/*
倒数2、3列的GROUPING表示是前面哪一列的汇总,在没有使用coalesce()时方便查看
最后一列的GROUPING(item,year)就是以二进制数值表示是多字段的汇总
*/

在这里插入图片描述

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

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

相关文章

MFC 基础篇(一)

目录 一.SDK编程 二.为什么要学MFC? 三.MFC能做什么? 四.MFC开发环境搭建 五.MFC项目创建 六.消息映射机制 一.SDK编程 Application Programming Interface 应用程序编程接口。 Software Development Kit 软件开发工具包,一般会包括A…

自动化测试之争:code vs codeless

在TesterHome看到的一个话题,当我们选择做自动化时是否需要code 或者codeless。 code方案 用code去做自动化,实现过程就是拿个IDE撸代码。 python pytest/unittest appium/selenium/requests ... Java Junit/testNG appium/selenium/requests .…

volatile-无原子性案例详解

package com.nanjing.gulimall.zhouyimo.controller;import java.util.concurrent.TimeUnit;/*** author zhou* version 1.0* date 2023/11/5 7:56 下午*/ class MyNumber{int number;public synchronized void add(){number;} } public class VolatileNoAtomicDemo {public st…

git进阶

1、git:为分布式版本控制工具 2、 当新创建一个文件后,文件通过指令可以到达暂存区,暂存区是仓库和工作区的缓冲区域 当commit后,会把文件放入本地仓库,每一次commit都会创建一个版本 《小区域》 git status 《查看…

python- 学生信息管理系统

偶然整的学生信息管理系统一个学生信息管理系统,包括录入学生信息、查找学生信息、删除学生信息、修改学生信息、排序学生信息、统计学生总数和显示所有学生信息等功能 开发环境要求本系统的软件开发及运行环境具体如下。 操作系统:Windows 10。 Python…

知乎日报第三周总结

这周主要完成了评论的加载和长评论的展开与收起,同时完善了前面的内容,文章内容cell的滑动刷新改为滑动一个加载一个,这样就更加流畅;还有就是首次点击只先加载当前cell内容,这样就不会卡顿加载过多内容,剩…

MySQL(9):子查询

子查询 指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQL 4.1开始引入。 SQL 中子查询的使用大大增强了 SELECT 查询的能力,因为很多时候查询需要从结果集中获取数据,或者需要从同一个表中先计算得出一个数据结果,…

python学习10

前言:相信看到这篇文章的小伙伴都或多或少有一些编程基础,懂得一些linux的基本命令了吧,本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python:一种编程语言&…

Mybatis技术原理详解之:使用Mapper形式和注解驱动的复杂映射开发

Mybatis技术原理详解之:使用Mapper形式和注解驱动的复杂映射开发 Mapper形式的复杂映射开发 一对一查询 一对一查询的模型 ⽤户表和订单表的关系为,⼀个⽤户有多个订单,⼀个订单只从属于⼀个⽤户 ⼀对⼀查询的需求:查询⼀个订…

AFL入门教学

1、AFL简介 AFL(American Fuzzy Lop)是一个面向安全的模糊测试工具,它使用了一个新的编译时插桩技术和遗传算法,可以自动发现触发目标二进程程序的测试用例,从而大大提高测试代码的功能覆盖率。 AFL官网:…

090基于web+springboot的中小企业设备管理系统

欢迎大家关注,一起好好学习,天天向上 文章目录 一项目简介技术介绍 二、功能组成三、效果图四、 文章目录 一项目简介 本中小企业设备管理系统管理员有个人中心,用户管理,员工管理,设备信息管理,配件信息管…

计算机报错找不到msvcp110.dll无法继续执行代码怎么解决?

msvcp110.dll文件丢失是一个相当常见的问题,尤其是在运行某些程序或游戏时。这个问题可能会导致程序无法正常运行,甚至可能导致系统崩溃。那么,面对这样的问题,我们应该如何来解决呢?下面,我将分享我解决问…

LabVIEW开发实时离子温度测量

LabVIEW开发实时离子温度测量 迈向核聚变发电的漫长旅程,旨在提供无限的清洁能源。离子温度是产生聚变点火条件中最重要的参数之一,快速简单地测量离子温度的技术至关重要。特别是对于未来的聚变反应堆来说,需要一种使用等离子体发出的物理现…

Python基础入门例程43-NP43 判断布尔值(条件语句)

最近的博文: Python基础入门例程42-NP42 公式计算器(运算符)-CSDN博客 Python基础入门例程41-NP41 二进制位运算(运算符)-CSDN博客 Python基础入门例程40-NP40 俱乐部的成员(运算符)-CSDN博客…

【Servlet】Servlet的生命周期

目录 一、Servlet的生命周期 二、Servlet的生命周期演示图 三、线程安全问题 四、解决线程安全问题 面试题 一、Servlet的生命周期 1.类加载和实例化 Servlet容器(如Tomcat)负责加载和实例化Servlet。当容器是首次启动或首次请求某个Servlet时,容器就会读取w…

英语小作文模板(10招募+通知;15通知+介绍)

10招募+通知: 题目背景及要求 第一段 第二段 第三段 翻译 15通知+介绍 : 题目背景及要求 第一段 第二段 第三段 15通知+介绍(2) 第一段 第二段 第三段 重金求子通知

Python---练习:使用循环嵌套打印正等腰三角形

案例: 使用循环嵌套打印正等腰三角形 如图: 思考: 首先,给了样式,有几行,也就是明确的次数,所以用while循环,for循环是针对没有明确次数用的。 while循环基本语法: 结…

Python基础入门例程45-NP45 禁止重复注册(条件语句)

最近的博文: Python基础入门例程44-NP44 判断列表是否为空(条件语句)-CSDN博客 Python基础入门例程43-NP43 判断布尔值(条件语句)-CSDN博客 Python基础入门例程42-NP42 公式计算器(运算符)-C…

【电路笔记】-谐波

谐波 文章目录 谐波1、概述2、频谱分析3、已知信号4、未知信号5、总结 周期性信号并不总是完美的正弦模式,例如我们之前有关 正弦波的文章之一中介绍的那样。 有时,信号确实可以是简单正弦波的叠加,它们被称为复杂波形。 在本文中&#xff0…

第一章 introduction to software testing

文章目录 基本概念validation / verificationinput domain / output domaindeterministic / non-deterministicterminate / not-terminate Testing概念testing 的目的Fault, failure, error测试三要素 (3 essential pieces of information)测试输入预期输出执行测试 test execu…