SQL 使用 dense_rank() 将数据附加到 table
SQL append data to table using dense_rank()
我一直在尝试拼凑一些我在谷歌上搜索过但没有成功的代码。我正在尝试向现有 table 添加一个新列。我可以使用 select 查询中的以下代码查看该列:
我基本上想将此 select 查询的结果附加到我原来的 table。
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],
[Account],
[Issuer],
[Return_Bucket],
[Age_Bucket],
[Type_Bucket],
[Risk_Bucket])
from Test_Table
)
UPDATE c
Set CohortID = r
FROM cte c;
如有任何想法或建议,我们将不胜感激。谢谢!
试试这个版本:
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 的列列表中包含新列。
我一直在尝试拼凑一些我在谷歌上搜索过但没有成功的代码。我正在尝试向现有 table 添加一个新列。我可以使用 select 查询中的以下代码查看该列:
我基本上想将此 select 查询的结果附加到我原来的 table。
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],
[Account],
[Issuer],
[Return_Bucket],
[Age_Bucket],
[Type_Bucket],
[Risk_Bucket])
from Test_Table
)
UPDATE c
Set CohortID = r
FROM cte c;
如有任何想法或建议,我们将不胜感激。谢谢!
试试这个版本:
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 的列列表中包含新列。