gpt4 book ai didi

SQL:为重复条目创建计数器

转载 作者:行者123 更新时间:2023-12-04 05:42:10 25 4
gpt4 key购买 nike

我想在导入步骤中为中间表上的重复条目创建一个整数计数器。假设我有一张名为 FinalTable 的表,看起来像这样:
FinalTable

ID       Date          SameDateCounter
1003 2012/01/01 NULL
1004 2012/02/01 NULL
1005 2012/03/01 1
1006 2012/03/01 2
1007 2012/03/01 3
1008 2012/04/01 1
1009 2012/04/01 2

并且对 (Date, SameDateCounter) 有唯一约束.在中间步骤中,数据位于 IntermediateTable , 看起来很像 FinalTable除了它没有任何限制。所以这个问题的出发点就在这里:。
IntermediateTable :
ID       Date          SameDateCounter
1003 2012/01/01 NULL
1004 2012/02/01 NULL
1005 2012/03/01 NULL
1006 2012/03/01 NULL
1007 2012/03/01 NULL
1008 2012/04/01 NULL
1009 2012/04/01 NULL

我需要为 SameDateCounter 生成值,从一个开始,日期出现不止一次。

最佳答案

您可以使用 ROW_NUMBER()功能结合PARTITION BY条款:

;WITH Data AS
(
SELECT
ID, Date,
SameDateCounter = ROW_NUMBER() OVER (PARTITION BY Date ORDER BY ID DESC)
FROM dbo.YourTableNameHere
)
SELECT *
FROM Data
PARTITION BY Date子句对 Date 的每个单独值进行分组进入自己的“分区”,和 ROW_NUMBER()为每个分区分发从 1 开始的数字。

所以你的 SameDayCounter每个新的一天将从 1 开始,并显示该特定日期的行。

关于SQL:为重复条目创建计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11154202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com