Mysql 用聚合函数来实现条件查询结果的某个字段最大值

问题

项目使用的数据库是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)