【发布时间】:2022-01-28 22:42:46
【问题描述】:
我有一张如下所示的表格:
Table A
Version,id
5060586,22285
5074515,22701
5074515,22285
7242751,22701
7242751,22285
我想生成一个名为 groupId 的新密钥,如下所示:
Table A
Version,id,groupId
5060586,22285,1
5074515,22701,2
5074515,22285,2
7242751,22701,2
7242751,22285,2
我希望 groupId 相同,只要不同版本中的 id 相同。因此,例如版本 5074515 和 7242751 具有相同的 id,因此 groupId 将是相同的。如果所有 id 都不相同,则应添加新的 groupId,就像在版本 5060586 中一样。
如何在 SQL oracle 中解决这个特定问题?
【问题讨论】:
-
COUNT(*) OVER (PARTITION BY version,id) AS groupId已经满足您的情况,具体取决于当前数据。或许,如果您需要更多,您可以尝试更改示例数据集。 -
是否可以添加自定义 id 作为 groupId?例如 SELECT MAX(PK) + 1 FROM C) + ROWNUM AS PK @BarbarosÖzhan