基于mysql實(shí)現(xiàn)group by取各分組最新一條數(shù)據(jù)
前言:
group by函數(shù)后取到的是分組中的第一條數(shù)據(jù),但是我們有時(shí)候需要取出各分組的最新一條,該怎么實(shí)現(xiàn)呢?
本文提供兩種實(shí)現(xiàn)方式。
一、準(zhǔn)備數(shù)據(jù)
二、三種實(shí)現(xiàn)方式
1)先order by之后再分組:
SELECT * FROM (SELECT * from tb_dept ORDER BY id descLIMIT 10000) a GROUP BY parent_id;
不加LIMIT可能會無效,由于mysql的版本問題。但是總覺得這種寫法不太正經(jīng),因?yàn)槿绻麛?shù)據(jù)量大于Limit 的值后,結(jié)果就不準(zhǔn)確了。所以就有了第二種寫法。
2)利用max() 函數(shù):
SELECT * FROM tb_dept td,(SELECT max(id) id FROM tb_dept GROUP BY parent_id) md where td.id = md.id;
3)利用 where 字段名稱 in (...) 函數(shù):
SELECT * FROM tb_dept WHERE id IN (SELECT MAX(id) FROM tb_dept GROUP BY parent_id);
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- SQL?Group?By分組后如何選取每組最新的一條數(shù)據(jù)
- mysql通過group?by分組取最大時(shí)間對應(yīng)數(shù)據(jù)的兩種有效方法
- python?DataFrame數(shù)據(jù)分組統(tǒng)計(jì)groupby()函數(shù)的使用
- MySQL數(shù)據(jù)庫分組查詢group by語句詳解
- pandas數(shù)據(jù)分組groupby()和統(tǒng)計(jì)函數(shù)agg()的使用
- 利用Pandas和Numpy按時(shí)間戳將數(shù)據(jù)以Groupby方式分組
- Sql group by 分組取時(shí)間最新的一條數(shù)據(jù)(示例代碼)
相關(guān)文章
Mysql5.7.18版本(二進(jìn)制包安裝)自定義安裝路徑教程詳解
這篇文章主要介紹了Mysql5.7.18版本(二進(jìn)制包安裝)自定義安裝路徑教程詳解,需要的朋友可以參考下2017-07-07MySql分頁時(shí)使用limit+order by會出現(xiàn)數(shù)據(jù)重復(fù)問題解決
在MySQL中我們通常會采用limit來進(jìn)行翻頁查詢,當(dāng)limit遇到 order by的時(shí)候會出現(xiàn)數(shù)據(jù)重復(fù)問題,本文就來記錄一下,感興趣的可以了解一下2021-08-08Windows下MySQL定時(shí)備份腳本的實(shí)現(xiàn)
這篇文章主要介紹了Windows下MySQL定時(shí)備份腳本的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12計(jì)算機(jī)二級考試MySQL知識點(diǎn) mysql alter命令
這篇文章主要為大家詳細(xì)介紹了計(jì)算機(jī)二級考試MySQL知識點(diǎn),詳細(xì)介紹了mysql中alter命令的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08