前言:
group by函數后取到的是分組中的第一條數據,但是我們有時候需要取出各分組的最新一條,該怎么實現呢?
本文提供兩種實現方式。
一、準備數據
二、三種實現方式
1)先order by之后再分組:
select * from (select * from tb_dept order by id desclimit 10000) a group by parent_id;
不加limit可能會無效,由于mysql的版本問題。但是總覺得這種寫法不太正經,因為如果數據量大于limit 的值后,結果就不準確了。所以就有了第二種寫法。
2)利用max() 函數:
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 (...) 函數:
select * from tb_dept where id in (select max(id) from tb_dept group by parent_id);
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://www.cnblogs.com/deepalley/p/13602825.html