MySQL 语句|使用MySQL中的GROUP BY获取每个组的最大和最小值记录

在 MySQL 中,可以使用 GROUP BY 语句结合聚合函数和子查询来获取每个组中的最大和最小值对应的记录

举个通用的例子

假设有一个名为 your_table 的表,其中包含两列:group_column 和 value_column
要分别获取每个组中的最大和最小值对应的记录,可使用两条独立的 SQL 查询

获取最大值的记录

SELECT t1.*
FROM your_table t1
JOIN (SELECT group_column, MAX(value_column) AS max_valueFROM your_tableGROUP BY group_column
) t2 ON t1.group_column = t2.group_column AND t1.value_column = t2.max_value;

获取最小值的记录

SELECT t1.*
FROM your_table t1
JOIN (
SELECT group_column, MIN(value_column) AS min_value
FROM your_table
GROUP BY group_column
) t2 ON t1.group_column = t2.group_column AND t1.value_column = t2.min_value;

这两个查询分别使用了子查询来获取每个组的最大和最小值,然后通过连接操作获取相应的记录。可根据自己的实际需求和表结构调整表名和列名

举个实际的例子

假设有一个名为 employees 的表,记录了不同部门员工的信息,包括部门名 (department)、员工名 (employee_name) 和工资 (salary)。现在要分别获取每个部门中工资最高和最低的员工信息

employees 表格:

+----+------------+---------------+--------+
| id | department | employee_name | salary |
+----+------------+---------------+--------+
| 1  | HR         | Alice         | 50000  |
| 2  | HR         | Bob           | 55000  |
| 3  | IT         | Charlie       | 60000  |
| 4  | IT         | David         | 62000  |
| 5  | Sales      | Emily         | 70000  |
| 6  | Sales      | Frank         | 68000  |
+----+------------+---------------+--------+

获取每个部门中工资最高的员工:

SELECT e1.*
FROM employees e1
JOIN (SELECT department, MAX(salary) AS max_salaryFROM employeesGROUP BY department
) e2 ON e1.department = e2.department AND e1.salary = e2.max_salary;

这将返回每个部门中工资最高的员工记录:

+----+------------+---------------+--------+
| id | department | employee_name | salary |
+----+------------+---------------+--------+
| 2  | HR         | Bob           | 55000  |
| 4  | IT         | David         | 62000  |
| 5  | Sales      | Emily         | 70000  |
+----+------------+---------------+--------+

获取每个部门中工资最低的员工:

SELECT e1.*
FROM employees e1
JOIN (SELECT department, MIN(salary) AS min_salaryFROM employeesGROUP BY department
) e2 ON e1.department = e2.department AND e1.salary = e2.min_salary;

这将返回每个部门中工资最低的员工记录:

+----+------------+---------------+--------+
| id | department | employee_name | salary |
+----+------------+---------------+--------+
| 1  | HR         | Alice         | 50000  |
| 3  | IT         | Charlie       | 60000  |
| 6  | Sales      | Frank         | 68000  |
+----+------------+---------------+--------+

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

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

相关文章

SpringBoot:泛型对象存取与转换<JedisPool>

操作redis时候泛型、对象操作的比较频繁不可能都转成字符串然后再查询转换比较复杂了&#xff0c;这个时候我们需要对存取转换进行封装便于快速开发 1、导入依赖 <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId>&…

网络技术基础入门全套实验-厦门微思网络CCNA实验手册

知识改变命运&#xff0c;技术就是要分享&#xff0c;有问题随时联系&#xff0c;免费答疑&#xff0c;欢迎联系&#xff01; 微思简介&#xff08;https://www.xmws.cn) 微思成立于2002年&#xff0c;是一个诚信敬业、积极向上、充满活力、专注技术服务的企业。 微思获得了八…

为什么修改了.gitignore文件不生效,Git常见问题解决

Git 是基于 Linux内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,一般不需要服务器端软件支持(注:这得分是用什么样的服务端,使用http协议或者git协议等不太一样。并且在push和pull的时候和服务器端还是有交互的。),…

电子学会2023年12月青少年软件编程(图形化)等级考试试卷(四级)真题,含答案解析

青少年软件编程(图形化)等级考试试卷(四级) 分数:100 题数:24 一、单选题(共10题,共30分) 1. 运行下列程序,输入“abcdef”,程序结束后,变量“字符串”是?( )

Linux--部署 Tomcat 及其负载均衡

1.案例前置知识点 1&#xff09;Tomcat简介 名称由来&#xff1a;Tomcat最初是由 Sun的软件构架师詹姆斯邓肯戴维森开发的。后来他帮助将其变 为开源项目&#xff0c;并由Sun贡献给Apache软件基金会。由于大部分开源项目OReilly都会出一本相关的 书&#xff0c;并且将其封面设…

SpringMVC视图

文章目录 1、ThymeleafView2、转发视图3、重定向视图4、视图控制器view-controller5、总结 SpringMVC中的视图是View接口&#xff0c;视图的作用渲染数据&#xff0c;将模型Model中的数据展示给用户SpringMVC视图的种类很多&#xff0c;默认有转发视图和重定向视图当工程引入js…

2024几个测试接口的好工具,效率加倍~

作为一名后端程序员&#xff0c;一定要对自己写的接口负责&#xff0c;保证接口的正确和稳定性。因此&#xff0c;接口测试也是后端开发中的关键环节。 但我相信&#xff0c;很多朋友是懒得测试接口的&#xff0c;觉得这很麻烦。一般自己写的接口自己都不调用&#xff0c;而是…

onlyoffice(windows+linux)服务搭建详解以及api集成和踩坑说明

目录 onlyoffice介绍: 1、windows环境搭建onlyoffice服务 1、需要下载相关软件 1.1、Erlang安装步骤 1.2、RabbitMQ安装步骤 1.3、PostgreSQL安装步骤 1.4、ONLYOFFICE安装步骤 2、linux环境搭建onlyoffice服务 onlyoffice介绍: ONLYOFFICE 文档 是一个开源办公套件,…

在Linux上搭建Maven仓库

目录 一、下载安装包二、安装maven三、修改配置文件settings.xml四、配置环境变量五、测试maven是否可用 一、下载安装包 我在这里为大家准备好了apache-maven-3.5.0-bin.tar.gz&#xff0c;百度网盘下载链接如下&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1bGun…

NodeJs 第十一章 express

Express 是基于 Node.js 平台&#xff0c;快速、开放、极简的 web 开发框架 基本使用 安装 npm install express --save示例代码 const express require(express) const app express() const port 3000app.get(/, (req, res) > {res.send(Hello World!) })app.listen(…

NSR原理描述

相关概念 HA&#xff08;High Availability&#xff09;&#xff1a;高可靠性/高实用性的简称&#xff0c;这里指主备板间的备份通道。NSF&#xff08;Non-Stop Forwarding&#xff09;&#xff1a;不间断转发。NSR&#xff08;Non-Stop Routing&#xff09;&#xff1a;不间断…

详细分析Mybatis中的<foreach>标签

目录 前言1. 基本语法2. Demo3. 实际例子 前言 对于Java专栏&#xff1a;Java专栏 对于Mybatis的相关知识可看我之前的文章&#xff1a;Mybatis从入门到精通&#xff08;全&#xff09; 对于其余Java框架可看我之前的文章&#xff1a;java框架 零基础从入门到精通的学习路线 附…

24年春招要来了,大学生第一次实习去大厂重要么?

春招要来了&#xff0c;大学生第一次实习去大厂重要么? 1.错峰实习。2.继任直招。3.优化简历&#xff0c;匹配优先。4. 善用新技术 先说一个暴论: 实习一定要去大厂&#xff0c;尤其是非头部院校的同学&#xff0c;你就算进去打螺丝&#xff0c;也要进大厂 关于我&#xff1a…

无需任何三方库,在 Next.js 项目在线预览 PDF 文件

前言&#xff1a; 之前在使用Vue和其它框架的时候&#xff0c;预览 PDF 都是使用的 PDFObject 这个库&#xff0c;步骤是&#xff1a;下载依赖&#xff0c;然后手动封装一个 PDF 预览组件&#xff0c;这个组件接收本地或在线的pdf地址&#xff0c;然后在页面中使用组件的车时候…

Linux部署 .netcore网站

1.下载ubuntu镜像&#xff0c;ubuntu-18.04.6-desktop-amd64.iso&#xff0c; 2.安装VM虚拟机 16.2.3 build 版本 3.安装镜像 4.开启ssh&#xff0c;<网上搜 balabala> 5.先安装ssh,然后重启ssh,检查ssh状态&#xff0c;都是正常&#xff0c;但是fianlshell总是无法登录。…

微店获得微店商品详情 API(micro.item_get)

要获取微店商品详情&#xff0c;你需要使用微店的 API&#xff08;应用程序接口&#xff09;。在微店的 API 中&#xff0c;有一个名为 micro.item_get 的接口&#xff0c;可以用于获取商品详情。 要使用 micro.item_get API&#xff0c;你需要按照以下步骤进行操作&#xff1…

基于bp神经网络的共享单车需求量预测

目录 摘要 BP神经网络参数设置及各种函数选择 参数设置 训练函数 传递函数 学习函数 性能函数 显示函数 前向网络创建函数 BP神经网络训练窗口详解 训练窗口例样 训练窗口四部详解 基于BP神经网络的租金预测 代码下载:基于bp神经网络的共享单车需求量预测(代码完整是,数据齐…

【python】08.面向对象编程基础

面向对象编程基础 活在当下的程序员应该都听过"面向对象编程"一词&#xff0c;也经常有人问能不能用一句话解释下什么是"面向对象编程"&#xff0c;我们先来看看比较正式的说法。 "把一组数据结构和处理它们的方法组成对象&#xff08;object&#…

Redis入门-redis的五大数据类型+三种特殊的数据类型

前言&#xff1a;Redis有五大基本类型与三种特殊类型的介绍 Redis有五大基本类型&#xff1a;字符串&#xff08;string&#xff09;、哈希&#xff08;hash&#xff09;、列表&#xff08;list&#xff09;、集合&#xff08;set&#xff09;和有序集合&#xff08;sorted se…

大模型实战营Day4 XTuner大模型单卡低成本微调实战

FINETUNE简介 LLM下游应用中&#xff0c;增量预训练和指令跟随是经常会用到的两种微调模式 指令跟随微调 使用场景&#xff1a;让模型学会对话模板&#xff0c;根据人类指令进行对话 训练数据&#xff1a;高质量的对话&#xff0c;问答数据 为什么需要指令微调&#xff1f; 因为…