MSSQL分組取後每一組的最新一條記錄

2021-08-02 10:26:16 字數 327 閱讀 8476

資料庫中二張表,使用者表和獎金記錄表,獎金記錄表中乙個使用者有多條資訊,有乙個生效時間,現在要查詢:

獎金生效時間在三天前,每個使用者取最新一條獎金記錄,且使用者末鎖定

以前用的方法是直接寫在c#**中的:

for(所有末鎖定使用者)

查詢獎金記錄表 top 1 where uid=??? order by 生效時間 desc

if(上面查詢的記錄生效時間在三天前)

輸出今天花了大部分時間研究了一下,終於找到一條sql語句就可以把結果查出來的方法:

那個row_number函式在mssql2008以上才會有!!!

SQL分組排序後取每組最新一條資料的另一種思路

在hibernate框架和mysql oracle兩種資料庫相容的專案中實現查詢每個id最新更新的一條資料。之前工作中一直用的mybatis oracle資料庫這種,一般寫這類分組排序取每組最新一條資料的sql都是使用row number over 函式來實現 例如 select t1.from s...

sql 分組後重複資料取時間最新的一條記錄

max id 注意id必須使用聚合函式max pid,max time as desc 降序是為了where keyid 1 1是固定值第一條 如果公升序由於不知道每組多少條where中keyid就無法過濾了 as keyid,drop table if exists tmptable 存在表則刪除...

mysql 如何獲取每一組建立時間最小的記錄

需求 要根據每種店鋪型別獲取到建立時間最早的那條記錄 表結構如下 create table finance rent mode dealer id int 11 unsigned not null auto increment comment 主鍵id dealerid int 11 not nul...