SQL使用density_rank()将数据追加到表

我一直在尝试拼凑我搜索过但没有任何运气的一些代码。我正在尝试向现有表添加新列。我可以使用以下来自选择查询的代码查看该列:

我基本上想将此选择查询的结果附加到我的原始表中。

Select  
    Dense_Rank() Over(Order By [Asset_Type],[account],[Issuer],[Return_Bucket],[Age_Bucket],[Type_Bucket],[Risk_Bucket]) AS CohortID
 from Test_Table    

我尝试将cte与以下代码结合使用,但出现错误。

alter table Test_Table      
add CohortID float

With cte AS
(
    Select
    r = Dense_Rank() Over(Order By [Asset_Type],[Risk_Bucket])
    from Test_Table 
)
UPDATE c
Set CohortID = r
FROM cte c;

任何想法或建议将不胜感激。谢谢!

jiaoshi_910 回答:SQL使用density_rank()将数据追加到表

尝试此版本:

alter table Test_Table add CohortID float;
GO

WITH toupdate AS (
      SELECT r = Dense_Rank() Over(Order By [Asset_Type],t.*
      FROM Test_Table t
     )
UPDATE toupdate
    SET CohortID = r;

我怀疑您的查询错误是因为您没有在CTE的列列表中包括新列。

本文链接:https://www.f2er.com/2808915.html

大家都在问