0
我有一個帶有兩列PK的表格。我想添加一個新列nid
,它根據特定的ORDER BY爲每行(1,2,3 ...)編號。通過訂單對所有行進行編號
所以:
x | y | z
3 7 2
1 4 1
當用z ASC編號變爲:
x | y | z | nid
3 7 2 | 2
1 4 1 | 1
我可以在SQL(Postgres的9.4)這樣做呢?
我有一個帶有兩列PK的表格。我想添加一個新列nid
,它根據特定的ORDER BY爲每行(1,2,3 ...)編號。通過訂單對所有行進行編號
所以:
x | y | z
3 7 2
1 4 1
當用z ASC編號變爲:
x | y | z | nid
3 7 2 | 2
1 4 1 | 1
我可以在SQL(Postgres的9.4)這樣做呢?
如果我理解正確的話,你可以用row_number()
:
select x, y, z, row_number() over (order by z) as nid
from t;
如果有一種是在z支柱重複? – GurV
哪一個ORDER BY? – jarlh
當您在此命令的最後添加行時,數據庫應該如何運行?是否應該按照此順序進一步更新每一行以將其數目增加一個?看起來像一個麻煩...我不是DBA,但我認爲你最好通過請求得到這個數字請求,或創建一個視圖,在需要時計算它。 – Aaron