MySQL 分组后取时间最新记录

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

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

MySQL 分组后取时间最新记录MySQL 分组后取时间最新记录

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

还有一条语句:select *,count(accountid) as num from 
(select * from accountmark order by createtime desc) `temp`  
group by accountid order by createtime desc 
这样查出来的数据是对的
MySQL 分组后取时间最新记录

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

 

解决方法

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

 

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享