基于mysql實現(xiàn)group by取各分組最新一條數(shù)據(jù)
前言:
group by函數(shù)后取到的是分組中的第一條數(shù)據(jù),但是我們有時候需要取出各分組的最新一條,該怎么實現(xiàn)呢?
本文提供兩種實現(xiàn)方式。
一、準備數(shù)據(jù)
http://note.youdao.com/noteshare?id=dba748092a619be0a8f160ccf6e25a5f&sub=FD4C1C7823CA440DB360FEA3B4A905CD
二、三種實現(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),因為如果數(shù)據(jù)量大于Limit 的值后,結(jié)果就不準確了。所以就有了第二種寫法。
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í)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Windows10環(huán)境安裝sdk8的圖文教程2. Windows系統(tǒng)徹底卸載SQL Server通用方法(推薦!)3. Oracle rac環(huán)境的數(shù)據(jù)庫導(dǎo)入操作步驟4. MYSQL(電話號碼,身份證)數(shù)據(jù)脫敏的實現(xiàn)5. Sql在多張表中檢索數(shù)據(jù)的方法詳解6. Navicat for MySQL的使用教程詳解7. Mysql中的日期時間函數(shù)小結(jié)8. mysql查詢的控制語句圖文詳解9. debian10 mariadb安裝過程詳解10. SQL Server2022安裝圖文教程(最新推薦)
