[轉]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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM