MySQL 分组后取时间最新记录

来源:这里教程网 时间:2026-02-28 10:05:27 作者:

如题,我在网上也找过相关解决方法,很多解答都是这么一句sql语句:
select id,accountid,mark,max(createtime) as latest from accountmark as b group by accountid 

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



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

还有一条语句:select *,count(accountid) as num from 
(select * from accountmark order by createtime desc) `temp`  
group by accountid order by createtime desc 
这样查出来的数据是对的


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

 

解决方法

select * from AccountMark as b where not exists(select 1 from AccountMark where AccountId= b.AccountId
and b.CreateTime

 

相关推荐