Добрый день!Я пытаюсь взять значения, которые охватывают несколько столбцов в одной таблице, и вставить их в один столбец в новой таблице, но для нескольких различных полей в несколько различных полей в новой таблице.
Например, в моем оригиналеВ таблице есть 5 столбцов для разных лекарств, я хочу вставить их в один столбец в новой таблице и просто дублировать значения других столбцов в строках для каждого лекарства, которое было вставлено.
Сообщение об ошибке, которое я получаюв том, что выражений больше, чем целей, что да, но некоторые вставки помечены одинаково.Разве «Вставка» не позволяет вставлять несколько элементов в один столбец?Есть ли другой метод или функция для этого?
Заранее спасибо!
Это моя недавно созданная таблица:
CREATE TABLE source.roster_new
(
person_number text COLLATE pg_catalog."default",
date_of_birth timestamp without time zone,
person_last_name text COLLATE pg_catalog."default",
person_first_name text COLLATE pg_catalog."default",
dx_code text COLLATE pg_catalog."default",
dx_description text COLLATE pg_catalog."default",
dx_first_date timestamp without time zone,
gender text COLLATE pg_catalog."default",
age numeric,
last_test_type text COLLATE pg_catalog."default",
last_test_date timestamp without time zone,
medication text COLLATE pg_catalog."default"
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;
И это мой код длявставка в эту новую таблицу из старой:
INSERT INTO source.roster_new
SELECT
person_number
,date_of_birth
,person_last_name
,person_first_name
,asthma_code AS dx_code
,copd_code AS dx_code
,asthma_description AS dx_description
,copd_description AS dx_description
,first_asthma_date AS dx_first_date
,first_copd_date AS dx_first_date
,gender
,age
,case when(last_flu_date IS NOT NULL) THEN 'Flu' End AS last_test_type
,case when(last_spiro_date IS NOT NULL) THEN 'Spirometry' End AS last_test_type
,case when(last_pneumo_date IS NOT NULL) THEN 'Pneumococcal' End AS last_test_type
,last_flu_date AS last_test_date
,last_spiro_date AS last_test_date
,last_pneumo_date AS last_test_date
,medication1 AS medication
,medication2 AS medication
,medication3 AS medication
,medication4 AS medication
,medication5 AS medication
FROM source.roster
РЕДАКТИРОВАТЬ: я не мог понять, как форматировать таблицы, поэтому я загрузил два изображения результатов, которые я надеюсь увидеть и что оригиналданные будут выглядеть следующим образом.
Исходное изображение таблицы
Новое изображение таблицы