mysql 取最新数据_关于Mysql如何将数据分组后取出时间最近的数据详解

如题,我在网上也找过相关解决方法,很多解答都是这么一句SQL语句:

select Id,Ac

count

Id,Mark,max(Create

Time

) as Latest from AccountMark as b group by AccountId

相关mysql视频教程推荐:《mysql教程》

使用Max函数。但是在我查出来的数据中似乎有些不对,如图,反白的那一条数据,Mark字段和CreateTime字段根本不对应啊!

1984c5acefd1e362d58ed9392bdccae0.png

2d33e1b21e30225835f2b8462a7aa3d8.png

这是怎么回事?使用Max函数后在分组这样靠谱吗?

还有一条语句:select *,COUNT(AccountId) as Num from

(select * from AccountMark order by CreateTime desc) `temp`

group by AccountId order by CreateTime desc

这样查出来的数据是对的

748be804ea1c09b9c4575df16d45a265.png

但是,我需要创建视图,Mysql中视图里不允许出现查询子句。求大神些一条SQL语句,能实现既不出现子句,又能查出正确数据。谢谢!

解决方法:select * from AccountMark as b where not exists(select 1 from AccountMark where AccountId= b.AccountId

and b.CreateTime

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值