Postgresql Как группировать и заполнить поле - PullRequest
0 голосов
/ 18 декабря 2018

У меня таблица с полем была хэширована следующим образом:

order_id, order_detail_id

// qwe221, jdeiwe

// qwe221, eudasd

kasdaw25, saderf

kasdaw25, syehsd

kasdaw25, kredss

Я хочу сделать так, чтобы это былопроще в обслуживании

order_id, order_detail_id, order_id_alias

// qwe221, jdeiwe, 1

// qwe221, eudasd, 1

kasdaw25, saderf, 2

kasdaw25, syehsd, 2

kasdaw25, kredss, 2

Пожалуйста, помогите мне, объясните, как это сделатьэто шаг за шагом в SQL.Спасибо!

Ответы [ 3 ]

0 голосов
/ 18 декабря 2018

Вы можете вставить, используя,

INSERT INTO table_name (col_1, col_2, col_3)
SELECT col_1, col_2, col_3
FROM another_table
WHERE col_1 = 'value';
0 голосов
/ 18 декабря 2018

Вы можете обновить таблицу, используя:

update t
    set order_id_alias = tt.seqnum
    from (select order_id, row_number() over (order by order_id) as seqnum
          from t
          group by order_id
         ) tt
    where t.order_id = tt.order_id;

Примечание. Может потребоваться добавить столбец order_id_alias в таблицу, если его там еще нет.

0 голосов
/ 18 декабря 2018

использовать оконную функцию

select *, dense_rank() over(order by order_id) order_id_alias from t
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...