SQL 如何查询一张表中最新的操作数据

SELECT t1.*
FROM your_table_name t1
INNER JOIN (
SELECT column, MAX(operation_time) as max_time
FROM your_table_name
GROUP BY column
) t2 ON t1.column = t2.column AND t1.operation_time = t2.max_time;

your_table_name 为表名称,column 为关联字段,operation_time为操作时间(选择的维度可以是创建时间,也可以是修改时间或者表中其它时间字段),max_time为别名

示例:当前有一张积分表,用户注册即送10000积分,并且记录用户每次操作之后的数据,用户下单一次或者用户充值,积分表就会新增一条数据,表字段和表数据如下图
在这里插入图片描述
在这里插入图片描述
数据表明:user_id为1的客户09-21注册,09-22使用3000积分,09-23充值1000积分,09-24使用4000积分,最终剩余4000积分,同理,user_id为2的客户最终剩余3300积分;

此时我们需要获取这两个用户最后一次使用的积分以及剩余的积分,则可以使用以下sql获取数据:
SELECT t1.*
FROM user_points t1
INNER JOIN (
SELECT user_id, MAX(create_time) as max_time
FROM user_points
GROUP BY user_id
) t2 ON t1.user_id = t2.user_id AND t1.create_time = t2.max_time;
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值