sql

多用户查询最新的记录

技术分享

systemime
2020-07-16
2 min

现在有多个用户,要求查询在A表(比如日志)中每个用户最新的一条记录

# 数据

order_no     name   gdcs gdsj1   gdtime
600040407    王玲    1    0.56    2011/6/21 22:34    
600040407    王玲    2    0.56    2011/6/24 10:21    
600040407    王玲    3    0.56    2011/12/7 10:45    
600040407    王玲    4    0.56    2012/1/15 14:01    
600040407    王玲    5    0.56    2012/12/26 14:11    
600040408    魏武    1    0.56    2011/6/21 22:36    
600040408    魏武    2    0.56    2013/11/15 10:46    
600040408    魏武    4    0.56    2014/1/19 9:12    
600040408    魏武    3    0.56    2014/1/10 13:57    
600040408    魏武    5    0.56    2014/1/22 10:08  
600040435    于洋    1    0.56    2011/6/22 12:54    
600040435    于洋    2    0.56    2013/3/11 9:16    
600040435    于洋    4    0.56    2014/1/10 11:18    
600040435    于洋    3    0.56    2013/12/20 15:09

# SQL


-- 方法1
select a.* 
from table1 a
where not exists(
  select 1
  from table1 b
  where b.name=a.name and b.gdtime>a.gdtime
)

-- 方法2
select a.*
from table1 a
inner join
(
  select name, max(gdtime) 'maxgdtime'
  from table1 
  group by name
) b on a.name=b.name and a.gdtime=b.maxgdtime

# 原文链接

https://bbs.csdn.net/topics/390867651

上次编辑于: 2021/5/24 下午1:55:49