登录
首页 >  数据库 >  MySQL

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

来源:SegmentFault

时间:2023-01-26 08:01:49 373浏览 收藏

本篇文章给大家分享《Mysql 获取表中 对某个字段进行分组 然后在分组之后的基础上 再组内排序 获取 分组后最新或者最大记录》,覆盖了数据库的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

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

image.png

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、查询结果:

image.png

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

今天关于《Mysql 获取表中 对某个字段进行分组 然后在分组之后的基础上 再组内排序 获取 分组后最新或者最大记录》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>