У меня есть таблица sample_1
в базе данных Postgres 10.7 с некоторыми данными продольных исследований и восходящим числом sequence
на key
.Мне нужно INSERT
данные из промежуточной таблицы (sample_2
), поддерживающие соответственно столбец sequence
.
sequence
числа основаны на 0.Я предполагаю, что мне нужен запрос для поиска наибольшего числа sequence
на key
в sample_1
и добавления его к порядковому номеру каждой новой строки.Я в основном борюсь на этом этапе с арифметикой порядкового номера.Попробовал это:
INSERT INTO sample_1 (KEY, SEQUENCE, DATA)
SELECT KEY, sample_2.SEQUENCE + max(sample_1.SEQUENCE), DATA
FROM sample_2;
Тем не менее, я получаю ошибки, утверждающие, что я не могу использовать 'sample_1.SEQUENCE' в строке 2, потому что это таблица, в которую вставляется таблица.Я не могу понять, как сделать арифметику с моей последовательностью вставки!
Пример данных:
sample_1
| KEY | SEQUENCE | DATA |
+-------------+----------+------+
| YMH_0001_XX | 0 | a |
| YMH_0001_XX | 1 | b |
| YMH_0002_YY | 0 | c |
sample_2
| KEY | SEQUENCE | DATA |
+-------------+----------+------+
| YMH_0001_XX | 1 | d |
| YMH_0002_YY | 1 | e |
| YMH_0002_YY | 2 | f |
Я хочу продолжить возрастание sequence
чисел на key
для вставленных строк.
Для ясности, результирующая таблица в этом примере будет состоять из 3 столбцов и 6 строк:
sample_1
| KEY | SEQUENCE | DATA |
+-------------+----------+------+
| YMH_0001_XX | 0 | a |
| YMH_0001_XX | 1 | b |
| YMH_0001_XX | 2 | d |
| YMH_0002_YY | 0 | c |
| YMH_0002_YY | 1 | e |
| YMH_0002_YY | 2 | f |