Как создать новый раздел для каждого 1 значения - PullRequest
0 голосов
/ 08 мая 2020

Здравствуйте и заранее благодарим вас за любую предоставленную помощь.

У меня есть что-то вроде следующего:

Name Flag
AAA   1
AAA   2
AAA   3
AAA   1
AAA   2
BBB   1
BBB   2
BBB   3
BBB   4
BBB   3
BBB   1
BBB   2

Я хотел бы создать столбец с именем Grp с желаемым результатом как следует:

Name Flag Grp
AAA   1    1
AAA   2    1
AAA   3    1
AAA   1    2
AAA   2    2
BBB   1    1
BBB   2    1
BBB   3    1
BBB   4    1
BBB   3    1
BBB   1    2
BBB   2    2

1 Ответ

1 голос
/ 09 мая 2020

Вы можете использовать оконную функцию:

select t.*, 
       sum(case when flag = 1 then 1 else 0 end) over (partition by name order by ?) as Grp
from table t;

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

...