I’ve been trying to piece together bits of code that I’ve googled but haven’t had any luck. I’m trying to add a new column to an existing table. I can view the column using the below code from a select query:
I basically want to append the results from this select query to my original table.
x
Select
Dense_Rank() Over(Order By [Asset_Type],
[Account],
[Issuer],
[Return_Bucket],
[Age_Bucket],
[Type_Bucket],
[Risk_Bucket]) AS CohortID
from Test_Table
I’ve tried using a cte with the below code but I’ getting an error.
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;
Any thoughts or suggestions would be appreciated. Thanks!
Advertisement
Answer
Try this version:
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;
I suspect the error with your query is that you did not include the new column in the column list in the CTE.