正如标题所说,我需要计算每个快照中ProductId出现的次数,而我似乎并没有弄清楚如何。
基本上,我需要对Table1进行更新,以便填充Column Count,如下所示。 还要考虑到Table1有100,000个不同的ProductID
表1(原创)
SnapshotTimeId ProductID Count
20170131 15748 NULL
20170228 15748 NULL
20170331 15748 NULL
20170630 578455 NULL
20170731 578455 NULL
20170831 578455 NULL
20170930 578455 NULL
表1(更新后)
SnapshotTimeId ProductID Count
20170131 15748 1
20170228 15748 2
20170331 15748 3
20170630 578455 1
20170731 578455 2
20170831 578455 3
20170930 578455 4
提前致谢!
答案 0 :(得分:1)
使用ROW_NUMBER
:
WITH cte AS (
SELECT SnapshotTimeId, ProductID, Count,
ROW_NUMBER() OVER (PARTITION BY ProductID ORDER BY SnapshotTimeId) NewCount
FROM yourTable
)
UPDATE cte
SET Count = NewCount;
如果您不需要实际更新表格,那么只需从cte中进行SELECT *
。