SQL?Group?By分組后如何選取每組最新的一條數(shù)據(jù)
Group By分組后選取每組最新的一條數(shù)據(jù)
問(wèn)題
group by語(yǔ)句只會(huì)展示一條數(shù)據(jù),而且很多時(shí)候并不會(huì)展示我們想要的數(shù)據(jù),如何解決呢
首先我們先建一張表 temp,如下

我們先試一下分組查詢,看看結(jié)果
SELECT * FROM `temp` GROUP BY address
結(jié)果如下:

它默認(rèn)是取的id最小的那一條數(shù)據(jù),如果想要取最新的一條呢,我們?cè)囋囅扰判蛟俜纸M
SELECT * FROM (SELECT * FROM `temp` ORDER BY `create_time` desc) AS t GROUP BY t.`address`
看看結(jié)果:

發(fā)現(xiàn)結(jié)果沒(méi)變,就像排序好像沒(méi)生效一樣,下面有兩種解決方法
方法一:加limit關(guān)鍵字
SELECT * FROM (SELECT * FROM `temp` ORDER BY `create_time` desc limit 100) AS t GROUP BY t.`address`
現(xiàn)在結(jié)果就是我們想要的了

但是limit關(guān)鍵字,有時(shí)候可能不好限制范圍,如果你想查所有的數(shù)據(jù)呢,難道要單獨(dú)查一下有多少條數(shù)據(jù),再limit嗎,好像顯得不太專業(yè),所以下面有方法二
方法二:用max函數(shù)
SELECT t1.* FROM `temp` t1, ( SELECT MAX( id ) id FROM `temp` GROUP BY address ) AS t2 WHERE t1.id = t2.id
這種事先將每個(gè)分組最大的id取出來(lái),再拼接數(shù)據(jù),也能達(dá)到一樣的效果,結(jié)果如下:

如果你不想取最新的,想取中間某個(gè)范圍的,還能加where條件
SELECT t1.* FROM `temp` t1, ( SELECT MAX( id ) id FROM `temp` WHERE create_time < '2022-08-16' GROUP BY address ) AS t2 WHERE t1.id = t2.id
結(jié)果如下:

好啦,問(wèn)題解決了
總結(jié)
到此這篇關(guān)于SQL Group By分組后如何選取每組最新的一條數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Group By分組選取最新數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- mysql通過(guò)group?by分組取最大時(shí)間對(duì)應(yīng)數(shù)據(jù)的兩種有效方法
- python?DataFrame數(shù)據(jù)分組統(tǒng)計(jì)groupby()函數(shù)的使用
- MySQL數(shù)據(jù)庫(kù)分組查詢group by語(yǔ)句詳解
- pandas數(shù)據(jù)分組groupby()和統(tǒng)計(jì)函數(shù)agg()的使用
- 基于mysql實(shí)現(xiàn)group by取各分組最新一條數(shù)據(jù)
- 利用Pandas和Numpy按時(shí)間戳將數(shù)據(jù)以Groupby方式分組
- Sql group by 分組取時(shí)間最新的一條數(shù)據(jù)(示例代碼)
相關(guān)文章
Mysql樹(shù)形結(jié)構(gòu)的數(shù)據(jù)庫(kù)表設(shè)計(jì)方案
樹(shù)形結(jié)構(gòu)對(duì)大家來(lái)說(shuō)應(yīng)該都不陌生,在日常開(kāi)發(fā)中經(jīng)常會(huì)遇到,下面這篇文章主要給大家介紹了關(guān)于Mysql樹(shù)形結(jié)構(gòu)的數(shù)據(jù)庫(kù)表設(shè)計(jì)的相關(guān)資料,文中通過(guò)示例代碼的非常詳細(xì),需要的朋友可以參考下2021-09-09
MySQL隱式類型轉(zhuǎn)換導(dǎo)致索引失效的解決
本文主要介紹了MySQL隱式類型轉(zhuǎn)換導(dǎo)致索引失效的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
windows下MySQL5.6版本安裝及配置過(guò)程附有截圖和詳細(xì)說(shuō)明
這篇文章主要介紹了windows下MySQL5.6版本安裝及配置過(guò)程附有截圖和詳細(xì)說(shuō)明,需要的朋友可以參考下2013-06-06
MySQL之導(dǎo)出整個(gè)及單個(gè)表數(shù)據(jù)的操作
這篇文章主要介紹了MySQL之導(dǎo)出整個(gè)及單個(gè)表數(shù)據(jù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
Mysql CPU占用高的問(wèn)題解決方法小結(jié)
最近發(fā)現(xiàn)php網(wǎng)站發(fā)布信息比較慢,而且同網(wǎng)站目錄下的asp經(jīng)常登錄后立即就重新登錄,立即考慮到服務(wù)器資源占用問(wèn)題,所以進(jìn)服務(wù)器看到原來(lái)mysql占用率較高 25-60%左右,偶爾能跑到100%,所有導(dǎo)致上述問(wèn)題的發(fā)生2012-06-06
在MySQL?8.0版本中開(kāi)啟遠(yuǎn)程登錄詳細(xì)的操作步驟
有時(shí)數(shù)據(jù)庫(kù)所在機(jī)器與項(xiàng)目運(yùn)行的機(jī)器不是同一個(gè),那么就涉及到遠(yuǎn)程鏈接數(shù)據(jù)庫(kù)了,下面這篇文章主要給大家介紹了關(guān)于在MySQL?8.0版本中開(kāi)啟遠(yuǎn)程登錄詳細(xì)的操作步驟,需要的朋友可以參考下2024-04-04
mysql 實(shí)現(xiàn)添加時(shí)間自動(dòng)添加更新時(shí)間自動(dòng)更新操作
這篇文章主要介紹了mysql 實(shí)現(xiàn)添加時(shí)間自動(dòng)添加更新時(shí)間自動(dòng)更新操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
最新版MySQL 8.0.22下載安裝超詳細(xì)教程(Windows 64位)
這篇文章主要介紹了最新版MySQL 8.0.22下載安裝超詳細(xì)教程(Windows 64位),本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12

