MySQL 是一套開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),廣泛應(yīng)用于 Web 應(yīng)用程序的后端數(shù)據(jù)儲存。在數(shù)據(jù)庫查詢中,經(jīng)常需要按照某個字段進行分組,然后取出每個分組中最后一條記錄。本文將詳細介紹如何通過 MySQL 實現(xiàn)按分組取最后一條記錄。
SELECT * FROM 表名 t1 WHERE (字段1, 字段2) IN ( SELECT 字段1, MAX(字段2) FROM 表名 t2 WHERE 條件 GROUP BY 字段1 )
以上 SQL 語句的實現(xiàn)過程如下:
- 首先使用“表名 t2”進行分組,組內(nèi)按字段2進行排序,通過 MAX 函數(shù)獲取每個分組中最大的字段2。
- 然后將字段1和最大的字段2作為組合鍵,再在“表名 t1”中進行查詢,獲取符合條件的記錄。
- 最后得到按分組取最后一條記錄的結(jié)果,即每個分組中最后一條記錄。
需要注意的是,上述 SQL 語句中的“表名”前綴是為了區(qū)分 t1 和 t2 兩個臨時表而添加的,實際使用時可以省略。