Я пытаюсь создать таблицу, которая объединяет несколько таблиц в одну, и в этой новой таблице будет столбец, в котором хранится имя таблицы, из которой получена каждая строка.
(я компилирую несколько раз-серии результатов из разных временных окон в одну сводную таблицу, но метка временного ряда должна быть включена в качестве нового столбца)
Я использую pyscopg2
для передачи запросов в postgres через python и имя таблицыбыть сохраненным как текст, созданный и переданный из Python.
Мой запрос выполняется в изолированной локальной базе данных postgres, и поэтому я не беспокоюсь о передаче имен таблиц в качестве параметров.Да, я знаю, что это плохая форма, но сейчас мне просто нужно, чтобы это заработало.
псевдокод того, что я надеюсь достичь:
INSERT INTO destination_table VALUES ('string of source table name', select * from source_table)
Следует отметить, чтоТаблица назначения была создана с правильными измерениями / типами данных для принятия данных.Имена внутри {}
- это параметры, которые я передаю из python.
Фактический код, который я пробовал:
WITH upd as (SELECT many, columns, here… FROM {table_to_compile} where dep_count >=4)
INSERT INTO destination_table VALUES ('{table_to_compile}',(SELECT * from upd))
Приведенный выше код возвращает ошибку, "the sub selection query should only return one column"
.
Я пробовал разные комбинации, используя INSERT INTO
, но я буду воздерживаться от публикации каждого протестированного мной запроса, так как надеюсь, что моя цель была четко описана.