SQL добавить данные в таблицу с помощью dens_rank () - PullRequest
0 голосов
/ 07 января 2020

Я пытался собрать воедино кусочки кода, которые я нашел в Google, но мне не повезло. Я пытаюсь добавить новый столбец в существующую таблицу. Я могу просмотреть столбец, используя приведенный ниже код из запроса на выборку:

Я хочу добавить результаты этого запроса на выборку к моей исходной таблице.

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;

Любые мысли или предложения будут оценены. Спасибо!

1 Ответ

0 голосов
/ 07 января 2020

Попробуйте эту версию:

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.

...