Я надеюсь, что кто-то может либо сказать мне, где мой синтаксис неправильный, либо сообщить мне, если есть лучший способ достичь моей цели. Я взял большой набор данных и применил ряд идентифицирующих полей для последующей группировки данных. Я хотел бы применить уникальный «Cohort ID» к данным, которые я могу использовать для последующей группировки данных. Я думал, что структура типа Row_Number () Over (Partition) будет работать, но это явно не по какой-то причине. Я получаю идентификаторы группы, которые отличаются для указанных полей, когда они должны быть одинаковыми. Мой код ниже:
Чтобы дополнительно указать, что я пытаюсь сделать, если все элементы в выбранных мной полях ниже равны для двух разных строк данных, я хочу, чтобы это было помечено одинаковым идентификатором когорты. Например, если следующая строка совпадает с первыми двумя, за исключением другого «Эмитента», я хочу получить другой идентификатор когорты.
Пример данных ниже с моим ожидаемым идентификатором когорты
Asset_Type Account Issuer Return_Bucket Age_Bucket Type_Bucket Risk_Bucket Cohort ID
Equity Client 1 Bank A 10-15 3-6 months Financial Moderate 1
Equity Client 1 Bank A 10-15 3-6 months Financial Moderate 1
Equity Client 1 Bank A 10-15 6-12 months Financial Moderate 2
Equity Client 1 Bank A 10-15 6-12 months Financial Moderate 2
Equity Client 1 Bank A 10-15 6-12 months Financial High 3
Fixed Client 1 Bank A 10-15 6-12 months Financial High 4
Equity Client 1 Bank A 5-10 3-6 months Financial Moderate 5
Select
Row_Number() Over(Partition By [Asset_Type],
[Account],
[Issuer],
[Return_Bucket],
[Age_Bucket],
[Type_Bucket],
[Risk_Bucket]
Order by [Account]) Account AS CohortID
into Test_Table_2
from Test_Table_1