分組以后查詢最新的一條數據 $sql = "SELECT i.operating_system, i.version_id, i.update_time,i.operating_system, i.version_id, i.version_name, i.sdk_info ...
當使用GROUP BY 分組,默認返回的數據是組中最小的記錄即id最小的數據, 當開發中經常會需要分組后將最新的數據放在前面, 為了實現需求,使用了嵌套查詢,分別使用order by來排序 但執行結果依然是id最小的那條數據 最終添上limit max size 后才生效 ...
2020-11-10 17:40 0 681 推薦指數:
分組以后查詢最新的一條數據 $sql = "SELECT i.operating_system, i.version_id, i.update_time,i.operating_system, i.version_id, i.version_name, i.sdk_info ...
with MiPriceTopOne as (select classid,max(dataTime) dataTime,max(id) as id from MiPrice group by classid)select * from MiPrice where id in (select id ...
因為group by后取的一條數據默認是按主鍵id排序后的第一條,而且mysql查詢語句是先執行group by再執行order by的。所以無法直接取 group by 后 創建時間最新的數據。 通過max()取最大id。 操作測試: 1、數據准備 CREATE TABLE ...
編輯 1 --建立測試環境 CREATE TABLE table1(a VARCHAR(10),b VARCHAR(10),c VARCHAR(10)); --插入數據 INSERT INTO table1 VALUES('2004','12 ...
准備數據 SQL語句 查詢結果: ...
代碼如下 ...
首先,將按條件查詢並排序的結果查詢出來。 然后,從中分組選出最新一條記錄。 ...
在hibernate框架和mysql、oracle兩種數據庫兼容的項目中實現查詢每個id最新更新的一條數據。 之前工作中一直用的mybatis+oracle數據庫這種,一般寫這類分組排序取每組最新一條數據的sql都是使用row_number() over()函數來實現 例如: select ...