對於mysql中的group by分組后獲取組內創建時間最大的那行數據


1、問題場景:

group分組之后,一個組中會有好幾條數據,但是一般默認返回id最小的那一條,現在想返回創建時間最大的那一條數據。

如圖所示,根據上面的QUALITY_ID來查詢數據,會有兩條數據產生,這個時候直接分組group,產生的結果是:

2、解決方法:

(1)先根據創建時間倒敘,根據倒敘完的視圖進行分組group

或者把查詢的條件從內查詢中放到外查詢中也是可以的:

注意:但是這種方法,好像對於mysql5.7版本的不適用,對於5.7版本的mysql需要在排序的時候加一個limit,不然是不會執行子查詢中的排序的。

更改為:

 

(2)內查詢先直接分組,查出每個組最大的創建時間,然后外查詢的創建時間與之匹配

3、一種錯誤的方式:

最開始,我使用MAX函數搭配分組group使用,發現除了創建時間變成了最大值,其他的字段並不是預期值

其他的字段還是使用了id小的那行的數據
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM