Добавить и обновить столбец с последовательной нумерацией на основе группировки

У меня есть таблица со следующей структурой

Идентификатор Разделение Подробности 1 А какой-то текст 2 А какой-то текст 3 Б какой-то текст 4 Б какой-то текст 5 Б какой-то текст

Мне нужно добавить новый столбец целочисленного типа с именем «Заказ» с некоторыми данными, как описано ниже:

Идентификатор Разделение Подробности Заказ 1 А какой-то текст 1 2 А какой-то текст 2 3 Б какой-то текст 1 4 Б какой-то текст 2 5 Б какой-то текст 3

Как мы видим, целочисленные данные в последовательности столбцов «Порядок» должны сбрасываться, если данные «Деление» изменяются. В таблице тысячи строк с более чем 100 различными подразделениями.

Как я могу этого добиться?

Что произойдет, если 'B' изменится обратно на 'A'?

Thom A 10.12.2020 10:12

@ Ларну, я не уверен, что это значит. Но после обновления не должно быть никаких изменений в данных исходного столбца (Id, Division, Details).

Jitu 10.12.2020 10:20

Итак, как только Division изменится на 'B' (в этом сценарии на ID 3), у вас никогда не будет другого 'A'? Итак, что вы делаете в 'Z', что будет после?

Thom A 10.12.2020 10:22

Да, я мог бы получить еще одну пятерку. После «Z» может быть «A1», «B1»... (Кстати, это не точные имена столбцов, данные, которые я использую в проекте. Приведенный выше пример приведен только для облегчения понимания.)

Jitu 10.12.2020 13:41
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
4
129
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать row_number():

select t.*, 
    row_number() over(partition by division order by id) rn
from mytable t

Спасибо. Чтобы заставить его работать, используя следующий скрипт, обновите t set t.Order=t.rn from (выберите mytable .*, row_number() over (раздел по порядку деления по идентификатору) rn из mytable) t

Jitu 10.12.2020 10:38

Другие вопросы по теме