Mysql 技巧 —— 分组后每条记录取最新

Posted lemos

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql 技巧 —— 分组后每条记录取最新相关的知识,希望对你有一定的参考价值。

方法1

左连接

SELECT m1.*
FROM messages m1 LEFT JOIN messages m2
 ON (m1.name = m2.name AND m1.id < m2.id)
WHERE m2.id IS NULL;

 子查询

select * from messages where id in
(select max(id) from messages group by Name)

 mysql8 窗口函数

WITH ranked_messages AS (
  SELECT m.*, ROW_NUMBER() OVER (PARTITION BY name ORDER BY id DESC) AS rn
  FROM messages AS m
)
SELECT * FROM ranked_messages WHERE rn = 1;

 

233

以上是关于Mysql 技巧 —— 分组后每条记录取最新的主要内容,如果未能解决你的问题,请参考以下文章

mysql 分组后 每组随机取一条记录 求sql语句

sql:用group by分组后,每组随意取一个记录?

sql 怎么分组取行数最大的一条

如何用SQL SERVER取分组数据第一条

mysql分组取前N记录

ORACLE分组排序查询