我有一種情況,我希望在新創建的列中為我在下面嘗試過的相同業務代碼提供相同的自動增量值,但我沒有得到預期的結果
select *
, rank() over (partition by business_code order by ID)
from table
對于所有業務代碼,我在 ID 列中得到相同的值,這不是所需的結果。
我的輸出

預期產出

uj5u.com熱心網友回復:
你可以試試下面的 SQL 陳述句:
SELECT id
,business_code
,DENSE_RANK() OVER (ORDER BY m) NewColumn
FROM (SELECT id
,business_code
,MIN(id) OVER (PARTITION BY business_code) m
FROM myTable) d
解釋它是如何作業的:由于提供的資料,我認為首先獲取每個 business_code 的最小 id。作為第二步,按值對最小 id 進行排序。
uj5u.com熱心網友回復:
用這個
select row_number() over (order by (select null)), a.*
from Table a;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/522392.html
