筛选出userid对应最大日期的数据,并得到特定时间在筛选出数据对应的ID

需求:筛选出userid对应最大日期的数据,并得到特定时间在筛选出数据对应的ID

建表

create table #a_aa_a(
t_id int,
t_uesrid INT ,
t_time varchar(10)
)
insert into #a_aa_a VALUES  (1,1,'20200101')
insert into #a_aa_a VALUES  (2,1,'20210101')
insert into #a_aa_a VALUES  (3,1,'20220101')
insert into #a_aa_a VALUES  (4,2,'20210101')
insert into #a_aa_a VALUES  (5,2,'20220101')
insert into #a_aa_a VALUES  (6,2,'20230101')
insert into #a_aa_a VALUES  (7,3,'20210101')
insert into #a_aa_a VALUES  (8,3,'20220101')
insert into #a_aa_a VALUES  (9,3,'20230101')

先得到userid对应最大日期的数据

 SELECT t_uesrid,MAX(t_time) t_time FROM #a_aa_a
 GROUP BY t_uesrid

得到结果

得到特定时间对应的ID:

错误语句

 SELECT t_uesrid,MAX(t_time) t_time FROM #a_aa_a
 where t_time=20210101 GROUP BY t_uesrid

正确语句

例1

select * from (
SELECT t_uesrid,MAX(t_time) t_time FROM #a_aa_a
 GROUP BY t_uesrid)t1 where t1.t_time=20230101

例2---注意having后面需要跟聚合函数,max不能丢

SELECT t_uesrid,MAX(t_time) t_time FROM #a_aa_a
 GROUP BY t_uesrid having MAX(t_time)=20230101

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值