如何通过ROW_NUMBER函数在SQL中实现按分类统计最新记录?
- 内容介绍
- 相关推荐
本文共计573个文字,预计阅读时间需要3分钟。
直接输出结果:
为什么不能只用 GROUP BY + MAX(time)
常见误区是写 SELECT category, MAX(created_at) FROM t GROUP BY category,这只能拿到时间,拿不到整行数据(比如对应这条记录的 title 或 status)。想查完整记录,必须关联原表或改用窗口函数。用 ROW_NUMBER() 是最直白、兼容性好(MySQL 8.0+、PostgreSQL、SQL Server、Oracle 都支持)的解法。
本文共计573个文字,预计阅读时间需要3分钟。
直接输出结果:
为什么不能只用 GROUP BY + MAX(time)
常见误区是写 SELECT category, MAX(created_at) FROM t GROUP BY category,这只能拿到时间,拿不到整行数据(比如对应这条记录的 title 或 status)。想查完整记录,必须关联原表或改用窗口函数。用 ROW_NUMBER() 是最直白、兼容性好(MySQL 8.0+、PostgreSQL、SQL Server、Oracle 都支持)的解法。

