0

我有table这样的

column1 column2 column3
1   12  1
1   12  2
1   4   3
1   5   4
1   34  5
2   36  6
2   22  7
2   12  8
2   2   9
2   4   10
2   41  11
3   44  12
3   55  13
3   66  14
3   34  15

我需要添加额外的 column。之后该表应该是这样的

column1 column2 column3 column4
1   12  1   1
1   12  2   2
1   4   3   3
1   5   4   4
1   34  5   5
2   36  6   1
2   22  7   2
2   12  8   3
2   2   9   4
2   4   10  5
2   41  11  6
3   44  12  1
3   55  13  2
3   66  14  3
3   34  15  4

根据column1column4应该添加值。请帮助获得解决方案。

4

1 回答 1

7

是的,有一套内置的排名功能

这是其中之一ROW_NUMBER() OVER(PARTITION BY ... ORDER BY ...

SELECT *,
  ROW_NUMBER() OVER(PARTITION BY Column1 ORDER BY Column1) Column5
FROM table;

SQL 小提琴演示

于 2012-12-19T11:48:10.093 回答