mysql row_number 笔记

本文介绍了MySQL8.0开始支持的ROW_NUMBER()函数,详细解析了其在数据分组和排序中的使用,特别是在提取最新记录时的作用。通过PARTITION BY和ORDER BY子句,可以实现按特定列分组并按时间倒序排列。示例需求为从人员表和流程表中获取每个人员最新的流程状态,强调了如何利用ROW_NUMBER()选取每组第一条记录。此外,还讨论了获取多条记录的可能性。

mysql 8.0以后支持row_number

具体语法

row_number() over (PARTITION by  column order by update_time desc) rownum  ...

rownum=  

根据column分组,按时间倒序。这个时候我们一般都会取时间最近的一条数据,一般用于多条数据中排序选择数据

PARTITION by  column 如果column是null,则会返回1。

下面是个例子:

需求是:一个人可以发起多个多个流程,而我们只关心最新的一个流程是什么状态,所以我们用人员表做主表,关联流程表取最新的一条数据。

当然我们也可以获取多条,使用 in  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值