sql如何查每个用户最后一次使用记录

例子, 要查华南区每个用户的最后一张工单信息. 工单表有5年的数据. 每个用户每天都可能建工单. 这样应该怎样查询?能走索引又快的查出来. 假设工单表是(工单id.用户id.建单时间),用户表是 (用户id,名称,地区)

第1个回答  2018-08-02
select 工单id,用户id from 工单表 a where 建单时间=(select max(b.建单时间) from 工单表 b where b.用户id=a.用户id)
第2个回答  2018-08-02
select
*
from(
select a.workid,b.username,a.stime,row_number over (partition by b.id,b.ares order by a.stime desc ) rank1 from worktable a,usertable b
where a.userid=b.userid group by b.id,b.ares order by a.stime desc)
where a.rank=1
将用户id和时间建索引本回答被网友采纳
相似回答