2017-01-05 73 views
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)這樣做呢?

+1

如果有一種是在z支柱重複? – GurV

+0

哪一個ORDER BY? – jarlh

+0

當您在此命令的最後添加行時,數據庫應該如何運行?是否應該按照此順序進一步更新每一行以將其數目增加一個?看起來像一個麻煩...我不是DBA,但我認爲你最好通過請求得到這個數字請求,或創建一個視圖,在需要時計算它。 – Aaron

回答

2

如果我理解正確的話,你可以用row_number()

select x, y, z, row_number() over (order by z) as nid 
from t; 
相關問題