乐趣区

关于mysql:Mysql-获取表中-对某个字段进行分组-然后在分组之后的基础上-再组内排序-获取-分组后最新或者最大记录

1、新建 User 表,构造,及表中数据如下


2、查问 User 表中,雷同年龄最大的一条记录
3、查问语句:

select * from (select ROW_NUMBER() over(partition by tt.name order by tt.age desc) RowNum
   ,tt.*
   from user tt) as t1  where RowNum = 1

4、查问后果:

5、查问,每组中,年龄最小的,须要查出所有的最小年龄记录
6、查问语句:

select t1.* from user t1 
INNER JOIN
(select * from (select ROW_NUMBER() over(partition by tt.name order by tt.age ASC) RowNum
   ,tt.*
   from user tt) as t1  where RowNum = 1) t2
     on t1.`name` = t2.name and t1.age = t2.age
退出移动版