![](/img/trans.png)
[英]SQL: How do I design a versioned key:value pair, allowing for non-unique values?
[英]How do I select sequential numbers for non-unique values?
我有一个具有非唯一值的列,如下所示:
ID COL_A
0 A
1 B
2 B
3 C
4 D
5 D
6 D
7 E
除了这两个会产生以下输出的列,我还要选择一个偏移量:
ID COL_A OFFSET
0 A 0
1 B 0
2 B 1
3 C 0
4 D 0
5 D 1
6 D 2
7 E 0
应该应用偏移量,以便具有较低主键的值获得较低的偏移量。
我可能会想出一个PL / SQL方法来做到这一点,但是在纯SQL中这可能吗?
row_number()
窗口函数正是医生所规定的:
SELECT id, col_a, ROW_NUMBER() OVER (PARTITION BY col_a ORDER BY id) - 1 AS offset
FROM mytable
使用ROW_NUMBER
SELECT COL1,COL2,ROW_NUMBER() OVER (PARTITION BY COL2 ORDER BY Col1) Seq
FROM TableNAme
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.