当前位置: 首页 > news >正文

第14张 GROUP BY 分组

一、分组功能介绍

        使用group by关键字通过某个字段进行分组,对分完组的数据分别 “SELECT 聚合函数”查询结果。 

1.1 语法

SELECT column, group_function(column)
FROM table
[WHERE condition]
[GROUP BY group_by_expression]
[ORDER BY column];
明确:可以使用GROUP BY子句将表中的数据分成若干组。WHERE一定放在FROM后面。接着是group by 和 order by,不能改变顺序。

注意:在 SELECT 列表中所有未包含在组函数中的列都应该包含在 GROUP BY子句中,包含在 GROUP BY 子句中的列不必包含在SELECT 列表中因为例如

SELECT department_id, job_id, SUM(salary)

FROM employees

GROUP BY department_id;

如果employees表中有department_id为10的记录10条,但是10条中job_id为1,2,2,4,5的记录各两条。如果按照上述SQL编写查询,只是对department_id分组,那么查询结果中job_id的值应该是“1”还是“2”亦或是其他值呢?所以这是不合理的,故除了组函数之外的列都要写在group by之中。

举例:

# 在SELECT列表中所有未包含在组函数中的列都应该包含在 GROUP BY子句中
SELECT department_id, AVG(salary)
FROM employees
GROUP BY department_id ;# 包含在 GROUP BY 子句中的列不必包含在SELECT 列表中
SELECT AVG(salary)
FROM employees
GROUP BY department_id;

1.2 使用多个列分组

# SELECT 中出现的非组函数的字段必须声明在GROUP BY中,反之,GROUP BY中声明的字段可以不出现在SELECT中
# 分组的字段之间顺序无所谓,最终结果相同。
SELECT department_id dept_id, job_id, SUM(salary)
FROM employees
GROUP BY department_id, job_id ;

注意:

分组的字段之间顺序无所谓,最终结果相同。

Mysql实现啊SQL规范不严谨,即使未遵守“SELECT 中出现的非组函数的字段必须声明在GROUP BY中,反之,GROUP BY中声明的字段可以不出现在SELECT中”,也可以得出结果,只是结果不对。Oracle对此就会报错。

1.3 GROUP BY中使用WITH ROLLUP

        使用 WITH ROLLUP 关键字之后,在所有查询出的分组记录之后增加一条记录,该记录计算查询出的所有记录的总和,即统计记录数量。ROLLUP表示“归纳”。

举例:

SELECT department_id,AVG(salary)
FROM employees
WHERE department_id > 80
GROUP BY department_id WITH ROLLUP;

注意:当使用ROLLUP时,不能同时使用ORDER BY子句进行结果排序,即ROLLUP和ORDER BY是互相排斥的。理解为“归纳的那条数据不适合参与排序,因为他不属于原表中的记录。”

相关文章:

第14张 GROUP BY 分组

一、分组功能介绍 使用group by关键字通过某个字段进行分组,对分完组的数据分别 “SELECT 聚合函数”查询结果。 1.1 语法 SELECT column, group_function(column) FROM table [WHERE condition] [GROUP BY group_by_expression] [ORDER BY column]; 明确&#…...

笔记整理—linux驱动开发部分(10)input子系统与相关框架

关于输入类设备的系统有touch、按键、鼠标等,在系统中,命令行也是输入类系统。但是GUI的引入,不同输入类设备数量不断提升,带来麻烦,所以出现了struct input_event。 struct input_event {struct timeval time;//内核…...

[算法初阶]埃氏筛法与欧拉筛

素数的定义&#xff1a; 首先我们明白&#xff1a;素数的定义是只能整除1和本身&#xff08;1不是素数&#xff09;。 我们判断一个数n是不是素数时&#xff0c;可以采用试除法&#xff0c;即从i2开始&#xff0c;一直让n去%i&#xff0c;直到i*i<n c语言: #include<…...

【THM】linux取证 DisGruntled

目录 0x00 房间介绍 0x01 连接并简单排查 0x02 让我们看看做没做坏事 0x03 炸弹已埋下。但何时何地&#xff1f; 0x04 收尾 0x05 结论 0x00 房间介绍 嘿&#xff0c;孩子&#xff01;太好了&#xff0c;你来了&#xff01; 不知道您是否看过这则新闻&#xff0c;我…...

SpringBoot整合Freemarker(四)

escape, noescape 语法 <#escape identifier as expression>...<#noescape>...</#noescape>... </#escape> 用例 主要使用在相似的字符串变量输出&#xff0c;比如某一个模块的所有字符串输出都必须是html安全的&#xff0c;这个时候就可以使用&am…...

centos docker 安装 rabbitmq

安装docker 1.更新现有的软件包 首先&#xff0c;确保您的系统是最新的&#xff0c;可以通过运行以下命令来实现&#xff1a; sudo yum update -y 2.移除旧版本的Docker 如果您之前安装过Docker&#xff0c;可能需要先卸载旧版本。使用以下命令来卸载旧版本的Docker&#…...

手动实现promise的all,race,finally方法

Promise.all 是一个非常有用的工具&#xff0c;它接受一个 Promise 对象数组&#xff0c;并返回一个新的 Promise。当所有输入的 Promise 都成功解决时&#xff0c;新的 Promise 会解决为一个包含所有结果的数组&#xff1b;如果任何一个 Promise 被拒绝&#xff0c;新的 Prom…...

H5移动端预览PDF方法

新建页面 新建一个页面以便去预览对应的pdf 新建完后在 pages.json 文件内去新增对应路由 页面内容 <template><view class"page"><view class"pdf"><view id"demo"></view></view><view class"b…...

uniapp—android原生插件开发(1环境准备)

本篇文章从实战角度出发&#xff0c;将UniApp集成新大陆PDA设备RFID的全过程分为四部曲&#xff0c;涵盖环境搭建、插件开发、AAR打包、项目引入和功能调试。通过这份教程&#xff0c;轻松应对安卓原生插件开发与打包需求&#xff01; 项目背景&#xff1a; UniApp集成新大陆P…...

《潜行者2切尔诺贝利之心》游戏引擎介绍

潜行者2切尔诺贝利之心是基于虚幻5引擎&#xff0c;所以画面效果大家不必担心。游戏目前已经跳票了很久&#xff0c;预计发售时间是2024 年 11 月 21 日&#xff0c;这次应该不会再跳票。 潜行者2切尔诺贝利之心是虚幻5吗 答&#xff1a;是虚幻5。 潜行者官方推特之前回复了…...

winform 加载 office excel 插入QRCode图片如何设定位置

需求&#xff1a;winform 加载 office excel 并加载QRCode图片&#xff0c;但是每台PC打印出来QRCode位置都不太一样&#xff0c;怎么办呢&#xff1f; 我的办法&#xff1a; 1、在sheet中插入一个 textbox &#xff0c;改名 qrcode &#xff08;这个名字随便设置&#xff09…...

简易入手《SOM神经网络》的本质与原理

原创文章&#xff0c;转载请说明来自《老饼讲解神经网络》:www.bbbdata.com 关于《老饼讲解神经网络》&#xff1a; 本网结构化讲解神经网络的知识&#xff0c;原理和代码。 重现matlab神经网络工具箱的算法&#xff0c;是学习神经网络的好助手。 目录 一、入门原理解说 01.…...

21.assert断言

assert&#xff08;断言&#xff09;主要用于在程序运行过程中检查某个条件是否满足&#xff0c;如果不满足则会触发错误并终止程序执行&#xff0c;可以帮助程序员在开发阶段及时发现可能存在的逻辑错误等问题。 通过断言调试程序&#xff0c;abotr() has been called 就是断言…...

15分钟学 Go 第 46 天 : 监控与日志

第46天&#xff1a;监控与日志 学习目标 了解如何实现应用监控与日志管理&#xff0c;掌握相关工具和最佳实践。 内容结构 引言监控的概念与工具 监控的定义常见监控工具 日志管理的概念与工具 日志的重要性常见日志管理工具 实现监控与日志的最佳实践 监控指标日志格式 实战…...

BFS 算法专题(四):多源 BFS

目录 1. 01 矩阵 1.1 算法原理 1.2 算法代码 2. 飞地的数量 2.1 算法原理 2.2 算法代码 3. 地图中的最高点 3.1 算法原理 3.2 算法代码 4. 地图分析 4.1 算法原理 4.2 算法代码 1. 01 矩阵 . - 力扣&#xff08;LeetCode&#xff09; 1.1 算法原理 采用 BFS 正难…...

基于Spring Boot+Vue的养老院管理系统【原创】

一.系统开发工具与环境搭建 1.系统设计开发工具 后端使用Java编程语言的Spring boot框架 项目架构&#xff1a;B/S架构 运行环境&#xff1a;win10/win11、jdk17 前端&#xff1a; 技术&#xff1a;框架Vue.js&#xff1b;UI库&#xff1a;ElementUI&#xff1b; 开发工具&…...

Linux screen和cscope工具使用总结

1 minicom使用 1.1 minicom配置 第一次启动时&#xff1a; 如果输入sudo minicom提示错误&#xff0c;则需&#xff1a; sudo minicom -s 启动 出现配置菜单&#xff1a;选serial port setup 进入串口配置 输入A配置串口驱动为/dev/ttyUSB0 输入E配置速率为115200 8N1 输入F将 …...

深度学习面试八股汇总

按序发布&#xff1a; 深度学习——优化算法、激活函数、归一化、正则化 进入 深度学习——权重初始化、评估指标、梯度消失和梯度爆炸 进入 深度学习——前向传播与反向传播、神经网络&#xff08;前馈神经网络与反馈神经网络&#xff09;、常见算法 进入 深度学习——卷积神…...

微服务架构面试内容整理-API 网关-Gateway

Spring Cloud Gateway 是一个用于构建 API 网关的框架,它为微服务架构提供了灵活的路由和过滤功能。作为 Spring Cloud 生态的一部分,Gateway 提供了易于使用的 API 和强大的功能,适合用于现代微服务架构中的请求管理和服务交互。以下是 Spring Cloud Gateway 的主要特点、工…...

22.04Ubuntu---ROS2使用rclcpp编写节点C++

节点需要存在于功能包当中&#xff0c;功能包需要存在于工作空间当中。 所以我们要想创建节点&#xff0c;就要先创建一个工作空间&#xff0c;再创建功能包。 第一步&#xff1a;创建工作空间 mkdir -p chapt2_ws/src/ 第二步&#xff1a;创建example_cpp功能包&#xff0c…...

大文件传输不再难:探索高效文件分享工具的实战指南

大文件传输不再难&#xff1a;探索高效文件分享工具的实战指南 【免费下载链接】aliyunpan 阿里云盘命令行客户端&#xff0c;支持JavaScript插件&#xff0c;支持同步备份功能。 项目地址: https://gitcode.com/GitHub_Trending/ali/aliyunpan 你是否经历过这样的尴尬时…...

Rustup离线安装完整指南:在没有网络的环境中搭建Rust开发平台

Rustup离线安装完整指南&#xff1a;在没有网络的环境中搭建Rust开发平台 【免费下载链接】rustup The Rust toolchain installer 项目地址: https://gitcode.com/gh_mirrors/ru/rustup 你是否曾经需要在完全隔离的网络环境中安装Rust开发工具链&#xff1f;&#x1f91…...

OpenClaw内容创作:nanobot镜像辅助生成技术文章大纲与初稿

OpenClaw内容创作&#xff1a;nanobot镜像辅助生成技术文章大纲与初稿 1. 为什么需要自动化内容创作工具 作为一名技术博主&#xff0c;我经常面临这样的困境&#xff1a;明明积累了大量实践经验&#xff0c;却总是卡在"如何把零散知识点组织成结构化的文章"这个环…...

保姆级教程:在银河麒麟V10上,用Qt Installer Framework打包Unity游戏(附快捷方式配置)

银河麒麟V10系统下Unity游戏打包全流程实战&#xff1a;从安装配置到桌面快捷方式优化 在国产操作系统生态逐渐成熟的今天&#xff0c;银河麒麟V10作为主流国产Linux发行版之一&#xff0c;为独立游戏开发者提供了新的发布平台选择。本文将深入讲解如何利用Qt Installer Frame…...

如何一键备份你的QQ空间历史说说:GetQzonehistory完整指南

如何一键备份你的QQ空间历史说说&#xff1a;GetQzonehistory完整指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾担心QQ空间里的珍贵回忆会随着时间消失&#xff1f;那些承…...

中创新航发布2025年度业绩:总收入444亿元同比增长60% 盈利能力跨越式提升

3月27日&#xff0c;中创新航&#xff08;03931.HK&#xff09;发布2025年度业绩公告。公告显示&#xff0c;公司全年总收入444.00亿元人民币&#xff0c;同比增长约60.0%&#xff1b;年内利润20.95亿人民币&#xff0c;同比增长约148.4%&#xff0c;盈利能力实现跨越式提升&am…...

Pi0机器人控制中心RTOS集成:实时任务调度优化

Pi0机器人控制中心RTOS集成&#xff1a;实时任务调度优化 1. 引言 在机器人控制系统中&#xff0c;实时性往往决定着整个系统的可靠性和性能。Pi0机器人控制中心作为一个复杂的多任务系统&#xff0c;需要同时处理传感器数据采集、运动控制、决策规划等多个关键任务。在实时操…...

搜索引擎技巧

一.搜索行动框架第三步&#xff1a;抽取关键词、构造检索式在选择好搜索工具之后&#xff0c;紧接着就是抽取关键词、构造检索式了。检索式通常由三个要素组成。• 关键词&#xff1a;这个非常容易理解&#xff0c;我们常常在搜索过程中只会输入关键词。但很多时候&#xff0c;…...

Coze插件实战:如何给你的AI小游戏添加图片生成和数据库功能

Coze插件实战&#xff1a;打造沉浸式AI小游戏的进阶技巧 想象一下&#xff0c;你正在开发一款让用户体验挥霍10亿财富的AI小游戏。用户每次选择不同的消费方式&#xff0c;都会触发一段图文并茂的故事情节&#xff0c;最终目标是花光所有钱。这种游戏不仅需要动态生成故事内容&…...

本科好就业的专业有哪些

本科好就业的专业主要集中在工科和医学领域&#xff0c;尤其以信息技术、智能制造、新能源、医疗健康等国家战略扶持或产业刚需方向的专业为佳。‌‌ 一、工科类专业 工科专业因技术硬核、对接产业紧密&#xff0c;在就业率和薪资上普遍表现突出。‌‌ ‌1、计算机与信息技术类…...