在sql中是否有任何内置函数来实现以下操作

时间:2012-12-19 11:45:47

标签: sql sql-server sql-server-2008 tsql

我有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值应添加。 请帮助解决问题。

1 个答案:

答案 0 :(得分:7)

是的,有一组内置ranking functions

以下是其中一个,ROW_NUMBER() OVER(PARTITION BY ... ORDER BY ...

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

SQL Fiddle Demo