Oracle 分組排序函式使用,獲取分組第一條資料

2021-09-26 06:41:17 字數 1379 閱讀 7237

oracle 常用 group by 來進行分組查詢,但這裡使用row_number() over()函式,語法: row_number()over(partition by 欄位1 order by 欄位2 ),欄位1表示根據此欄位分組,欄位2表示排序,此函式計算的值就表示每組內部排序後的順序編號。

with t1 as (

select 1 id,'aa' name_ , to_date('2019-08-17 22:14:20','yyyy-mm-dd hh24:mi:ss') createdate from dual

union select 2 id,'bb' name_ , to_date('2019-08-16 22:14:20','yyyy-mm-dd hh24:mi:ss') createdate from dual

union select 3 id,'cc' name_ , to_date('2019-08-10 22:14:20','yyyy-mm-dd hh24:mi:ss') createdate from dual

union select 4 id,'dd' name_ , to_date('2019-08-10 22:14:20','yyyy-mm-dd hh24:mi:ss') createdate from dual

union select 5 id,'aa' name_ , to_date('2019-08-08 22:14:20','yyyy-mm-dd hh24:mi:ss') createdate from dual

union select 6 id,'bb' name_ , to_date('2019-08-15 22:14:20','yyyy-mm-dd hh24:mi:ss') createdate from dual

union select 7 id,'cc' name_ , to_date('2019-08-16 22:14:20','yyyy-mm-dd hh24:mi:ss') createdate from dual

union select 8 id,'dd' name_ , to_date('2019-08-08 22:14:20','yyyy-mm-dd hh24:mi:ss') createdate from dual

)select * from

(select t1.name_,t1.createdate,row_number() over(partition by name_ order by createdate desc ) row_number from t1

)tt where tt.row_number=1 --獲取分組後第一條資訊

Oracle 分組排序函式

專案開發中,我們有時會碰到需要分組排序來解決問題的情況 1 要求取出按field1分組後,並在每組中按照field2排序 2 亦或更加要求取出1中已經分組排序好的前多少行的資料 這裡通過一張表的示例和sql語句闡述下oracle資料庫中用於分組排序函式的用法。1.row number over ro...

Oracle 分組排序函式

專案開發中,我們有時會碰到需要分組排序來解決問題的情況 1 要求取出按field1分組後,並在每組中按照field2排序 2 亦或更加要求取出1中已經分組排序好的前多少行的資料 這裡通過一張表的示例和sql語句闡述下oracle資料庫中用於分組排序函式的用法。1.row number over ro...

Oracle 分組排序函式

專案開發中,我們有時會碰到需要分組排序來解決問題的情況 1 要求取出按field1分組後,並在每組中按照field2排序 2 亦或更加要求取出1中已經分組排序好的前多少行的資料 這裡通過一張表的示例和sql語句闡述下oracle資料庫中用於分組排序函式的用法。1.row number over ro...