[转]Mysql将数据分组后取出时间最近的数据
如题,我在网上也找过相关解决方法,很多解答都是这么一句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<CreateTime )
原文地址:http://bbs.csdn.net/topics/390958705
相关推荐
苏康申 2020-11-13
vitasfly 2020-11-12
ItBJLan 2020-06-16
专注前端开发 2020-10-21
oraclemch 2020-11-06
liuyang000 2020-09-25
FellowYourHeart 2020-10-05
赵继业 2020-08-17
whyname 2020-08-16
Seandba 2020-08-16
dbasunny 2020-08-16
拼命工作好好玩 2020-08-15
langyue 2020-08-15
写程序的赵童鞋 2020-08-03
Accpcjg 2020-08-02
tydldd 2020-07-30
好记忆也需烂 2020-07-28