Oracle - 通过简单查询显示增量 ID [重复]
Posted
技术标签:
【中文标题】Oracle - 通过简单查询显示增量 ID [重复]【英文标题】:Oracle - Display an incremental ID by a simple query [duplicate] 【发布时间】:2020-11-02 15:25:23 【问题描述】:我有一个非常简单的查询,如下所示:
SELECT Line, ID, Enum
FROM tab1
结果是这样的:
Line id enum
A 10 1
A 10 2
A 10 3
A 10 4
...
B 20 4
B 20 5
B 20 6
B 20 7
...
我希望,对于每个 Line/id,anum 从 1 开始,就像这样:
Line id enum
A 10 1
A 10 2
A 10 3
A 10 4
...
B 20 1
B 20 2
B 20 3
B 20 4
...
有什么想法吗?
【问题讨论】:
【参考方案1】:您需要一个解析函数,例如ROW_NUMBER()
:
SELECT Line, ID,
ROW_NUMBER() OVER (PARTITION BY Line ORDER BY Enum ) AS Enum
FROM tab1
该函数从整数 1 开始对每个 Line
组再次枚举每个 Enum
值,并按当前存在的 Enum
值排序
也许您需要按Line
和ID
进行分组,然后使用PARTITION BY Line, ID
而不是PARTITION BY Line
。
在这种情况下,两者都会产生相同的结果。
Demo
【讨论】:
完美!!谢谢!!! 不客气@FedericoCappellini。请接受答案作为帮助。以上是关于Oracle - 通过简单查询显示增量 ID [重复]的主要内容,如果未能解决你的问题,请参考以下文章