выберите конкретные столбцы для каждого запроса в объединении в postgresql из python - PullRequest
0 голосов
/ 12 июня 2018

У меня разные таблицы одинаковых столбцов за месячные периоды времени.Я хочу извлечь только определенные столбцы из каждой таблицы, а затем выполнить UNION, как показано ниже.

col_list = ['income', 'urban2', 'marital_stat', 'ethnic_group']

data_sample = str(""" SELECT {} FROM dbo.gold_nov17 
                            where drform in ('NON')
                            """.format(', '.join(col_list)))

Этот запрос для одной таблицы работает просто отлично.Однако, когда я пытаюсь сделать объединение, как показано ниже:

data_sample = str(""" SELECT {} FROM dbo.gold_nov17  
                            where drform in ('NON')

                            -----------
                            union all
                            -----------
                          SELECT {} FROM dbo.gold_nov17  
                            where drform in ('NON')
                            """.format(', '.join(col_list)))

Выдает ошибку:

""".format(', '.join(col_list)))

IndexError: tuple index out of range

Я, по сути, хочу выбрать конкретные столбцы (на основе col_list) для каждого изстолы для UNION.

1 Ответ

0 голосов
/ 12 июня 2018

Путем нумерации заполнителей вы сможете заменить несколько экземпляров одним и тем же значением:

data_sample = str(""" SELECT {0} FROM dbo.gold_nov17  
                        where drform in ('NON')

                        -----------
                        union all
                        -----------
                      SELECT {0} FROM dbo.gold_nov17  
                        where drform in ('NON')
                        """.format(', '.join(col_list)))
...