Welcome 歡迎光臨! 愛上網路 - 原本退步是向前

建立自動編號 VIEW 的欄位

PostgreSQL - Create view with autoincremental column

create view foo as (
    select row_number() over (order by field), field, field2, field3 from bar
)

 

create view foo as (
    select row_number() over(), field, field2, field3 from bar
)

這個功能說明如下

窗函數(window function)提供了在一個資料表中,進行資料列與資料列之間的關連運算。這部份可以和彙總函數的功能相呼應。然而,窗函數並無法像彙總函數一樣,把多個資料列運算合併為單一資料列的結果。取而代之的是,這些資料列仍然是分開並列的狀態。在這樣的情境下,窗函數能讓查詢結果的每一個資料列,都得到更多資訊

https://docs.postgresql.tw/tutorial/advanced-features/window-functions

 

使用 row_number() 來實現群組編排序號

假設有一張資料表(pay_table)如下:

pay_date    tic_no    money    cnt
2019-05-15    T300104    $46,440    11
2019-05-15    I300132    $573    1
2019-05-15    I300129/T400265    $107,196    39
2019-05-17    I300128    $10,929    2

若要依pay_date欄位做分組序號,可以用ROW_NUMBER() OVER(PARTITION BY 群組依據欄位 ORDER BY 排序依據欄位 DESC)來實現

SELECT (ROW_NUMBER() OVER(PARTITION BY pay_date ORDER BY tic_no DESC)) group_sn, pay_date, tic_no, money, cnt
FROM pay_table

 

[ 資料庫 ] 瀏覽次數 : 42 更新日期 : 2024/10/06