我有一个包含一些数据数据的表“mydata”:
id name position
===========================
4 foo -3
6 bar -2
1 baz -1
3 knork -1
5 lift 0
2 pitcher 0
我获取使用排序的表order by position ASC;
位置列值可能是非唯一的(出于某种原因,此处未描述 :-),并用于在SELECT
.
我想做的事 :
我想通过将唯一位置与不破坏订单的每一行相关联来规范化表格列“位置”。此外,归一化后的最高位置应为-1。
希望得到的表格内容:
id name position
===========================
4 foo -6
6 bar -5
1 baz -4
3 knork -3
5 lift -2
2 pitcher -1
我尝试了几种方法,但未能实施正确 update
的陈述。
我想使用
generate_series( -(select count(*) from mydata), -1)
是获取位置列的新值的一个很好的起点,但我不知道如何将生成的列数据合并到更新语句中。
希望有人可以帮助我:-)