1

我有一个看似简单的问题,但当然从来都不是。

我有看起来像这样的数据(我正在显示管道分隔):

Identifier | Roll Up | Sequence

1234       | 4567    | 1

1234       | 4567    | 2

1235       | 4567    | 1

1235       | 4567    | 2

1236       | 6789    | 1

1237       | 6789    | 1

因此,标识符是汇总字段的“版本”,每个汇总字段都有序列。

我需要做的是有一个额外的列来计算汇总的“版本”,例如:

Version |Identifier | Roll Up | Sequence

1       |1234       | 4567    | 1

1       |1234       | 4567    | 2

2       |1235       | 4567    | 1

2       |1235       | 4567    | 2

1       |1236       | 6789    | 1

2       |1237       | 6789    | 1

我认为这将是每个汇总的每个标识符的简单计数,但我无法让它正确地做到这一点COUNT()ROW_NUMBER().

有人会为该派生列提供解决方案吗?

非常感谢,特纳。

4

1 回答 1

2

在您的简单查询中添加一列,如下所示:

row_number() over (partition by Identifier, Roll_Up order by Identifier, Roll_Up)

我认为将是产生最终结果的脚本:

SELECT  t0.*, count1
FROM  Test AS t0 INNER JOIN
  (SELECT Identifier1, ROLLUP1,
     Row_Number() Over
   (Partition BY Identifier1, Rollup1
    ORDER BY Identifier1, RollUp1) AS count1
   FROM Test
   ) AS t1
  ON t0.Identifier1 = t1.Identifier1
  AND t0.ROLLUP1 = t1.ROLLUP1
于 2012-11-29T19:40:38.370 回答