對(duì)于Mysql如何將數(shù)據(jù)分組后取出時(shí)間最近的數(shù)據(jù)詳細(xì)說(shuō)明
發(fā)表時(shí)間:2023-08-26 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]如題,我在網(wǎng)上也找過(guò)相關(guān)解決方法,很多解答都是這么一句SQL語(yǔ)句:select Id,AccountId,Mark,max(CreateTime) as Latest from AccountMark as b group by AccountId使用Max函數(shù)。但是在我查出來(lái)的數(shù)據(jù)中似乎有些不對(duì)...
如題,我在網(wǎng)上也找過(guò)相關(guān)解決方法,很多解答都是這么一句SQL語(yǔ)句:
select Id,Ac
count
Id,Mark,max(Create
Time
) as Latest from AccountMark as b group by AccountId
使用Max函數(shù)。但是在我查出來(lái)的數(shù)據(jù)中似乎有些不對(duì),如圖,反白的那一條數(shù)據(jù),Mark字段和CreateTime字段根本不對(duì)應(yīng)!
這是怎么回事?使用Max函數(shù)后在分組這樣靠譜嗎?
還有一條語(yǔ)句:
select *,COUNT(AccountId) as Num from
(select * from AccountMark order by CreateTime desc) `temp`
group by AccountId order by CreateTime desc
這樣查出來(lái)的數(shù)據(jù)是對(duì)的
但是,我需要?jiǎng)?chuàng)建視圖,Mysql中視圖里不允許出現(xiàn)查詢子句。求大神些一條SQL語(yǔ)句,能實(shí)現(xiàn)既不出現(xiàn)子句,又能查出正確數(shù)據(jù)。謝謝!
解決方法:
select * from AccountMark as b where not exists(select 1 from AccountMark where AccountId= b.AccountId
and b.CreateTime<CreateTime )
以上就是關(guān)于Mysql如何將數(shù)據(jù)分組后取出時(shí)間最近的數(shù)據(jù)詳解的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
學(xué)習(xí)教程快速掌握從入門(mén)到精通的SQL知識(shí)。