问题 项目使用的数据库是mysql,对条件查询的结果的某个字段取最大值。
困难 想到普通的聚合函数,MAX无法实现此功能。
方案 后来查了下资料, 聚合函数max 配合group by函数一起使用, 先使用group by进行分组,
再对分组的结果,获取目标字段的max函数结果。
例子 获取女同学的最高分
建表
CREATE TABLE `test_table` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(20) DEFAULT NULL,
`gender` VARCHAR(20) DEFAULT NULL,
`score` INT(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8
测试数据
INSERT INTO test_table(NAME,gender,score) VALUES('李敏','女',80),('王闯','男',88),('王倩','女',99),('孙大圣','男',100);
查询语句
SELECT gender,MAX(score) FROM test_table GROUP BY gender
【Mysql 用聚合函数来实现条件查询结果的某个字段最大值】结果
文章图片
推荐阅读
- mysql|InnoDB数据页结构
- javaweb|基于Servlet+jsp+mysql开发javaWeb学生成绩管理系统
- mysql|一文深入理解mysql
- Java毕业设计项目实战篇|Java项目:在线嘿嘿网盘系统设计和实现(java+Springboot+ssm+mysql+maven)
- SQL|SQL基本功(五)--函数、谓词、CASE表达式
- vue|电商后台管理系统(vue+python|node.js)
- Java及基础算法及数据结构|旧笔记整理(MySQL)
- mysql|双非本211硕,无实习无项目,自学大数据开发,秋招上岸
- 数据库|Mysql--InnoDB存储引擎详解
- MySQL学习笔记-9-order by