-1

我有一个表,其中有一列名为“ID”

ID 列有 8 行,值为 100,100,100,200,200,300,300,300

我想创建一个名为“Row_ID”的新列,它应该查看 ID 列并为找到重复 id 的每一行提供唯一的行号,并在找到不同的值时重新启动计数器。

例如,对于上述 ID 列的值,Row 列应如下所示

1,2,3,1,2,1,2,3
4

1 回答 1

0

对于 Oracle 数据库

SELECT ROW_NUMBER() 
       OVER (PARTITION BY ID ORDER BY ID) AS "ROW_ID"
FROM (
  SELECT 100 ID FROM dual
  UNION ALL
  SELECT 100 ID FROM dual
  UNION ALL
  SELECT 100 ID FROM dual
  UNION ALL
  SELECT 200 ID FROM dual
  UNION ALL
  SELECT 200 ID FROM dual
  UNION ALL
  SELECT 300 ID FROM dual
  UNION ALL
  SELECT 300 ID FROM dual
  UNION ALL
  SELECT 300 ID FROM dual
)
于 2013-10-11T01:14:15.163 回答