Code Bye

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语句,能实现既不出现子句,又能查出正确数据。
解决方案:5分
参考下贴中的多种方法
http://blog.csdn.net/acmain_chm/article/details/4126306
[征集]分组取最大N条记录方法征集,及散分….
解决方案:35分
select *,(select count(distinct mark) from AccountMark where AccountId= b.AccountId)
 from AccountMark as b where not exists(select 1 from AccountMark where AccountId= b.AccountId
 and b.CreateTime<CreateTime )

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Mysql将数据分组后怎么样取出时间最近的数据