最近遇到乙個sql,要求表中時間最新的一條記錄
假設表名為 test ,時間欄位為sj,姓名為xm,可以用以下語句:
select * from test a where a.sj=(select max(b.sj) from test b where b.xm=a.xm)
之前一直不理解這個查詢的處理流程,猜測是這樣:
1.從a從取一條資料x
2.根據x.xm對b表分組,求b.xm為某個值時,b.sj的最大值。也就是這個人在表中對應的最大時間
3.用x.sj與max(b.sj)進行比較,如果相等,則返回x這條資料
oracle關聯表查詢記錄表最新一條記錄
from 表1 t1 join select row number over partition by 單據id order by 處理時間 desc rn from 表2 t2 on t1.單據id t2.單據id and t2.rn 1 t2表其實是由表2加乙個字段 rn row number ...
Oracle 查詢各組最新的一條記錄
oracle中怎麼查詢各組中最新的一條記錄呢?比如說現在有乙個表中幾條資料如下 有兩種寫法 寫法一 over partition by分析函式 select from select id company name,usage rate,detection rate,acceptability rat...
sql 取最新一條記錄
1.選出某個條件最新的一條記錄 選出最新狀態下的每乙個單號對應的子單資料 select distinct a.receiving code,a.product barcode,a.rd putaway qty from odoo ykd oversea shipping information a ...