当前位置:   article > 正文

Mysql数据库:先分组再取最新的一条记录的实现方法(亲测可用)

Mysql数据库:先分组再取最新的一条记录的实现方法(亲测可用)
例子

表结构:
在这里插入图片描述
要求先根据type进行分组,再取每组中时间最新的一条。

sql语句:

SELECT m1.* FROM test01 m1 LEFT JOIN test01 m2 ON 
(m1.Type = m2.Type and m1.DateOfOperation < m2.DateOfOperation) WHERE m2.ID is NULL
  • 1
  • 2

查询结果:
在这里插入图片描述
逻辑分析:
第一步:

SELECT * FROM test01 m1 LEFT JOIN test01 m2 ON m1.Type = m2.Type
  • 1

得到:
在这里插入图片描述
第二步:筛选出m1时间小于m2时间的行。如果m2的id为空,则表示m2中没有比m1中该时间还要晚的时间,也就是说:m1中的此时间就是最晚的时间。

SELECT m1.* FROM test01 m1 LEFT JOIN test01 m2 ON (m1.Type = m2.Type and m1.DateOfOperation < m2.DateOfOperation) WHERE m2.ID IS NULL
  • 1

小结:找了很长时间,才发现这个好用一点,记录一下。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/952756
推荐阅读
相关标签
  

闽ICP备14008679号