psycopg2 - добавление агрегации в список передачи скриптов в виде столбцов - PullRequest
0 голосов
/ 10 марта 2020

У меня есть список столбцов, которые я пытаюсь передать как столбцы как часть оператора select, как показано ниже:

list_name = ['col_a', 'col_b']

Пытаясь передать этот список в следующем запросе:

query = """SELECT {}
           FROM table""".format(', '.join(str(field) for field in list_name))

Вышеописанное работает хорошо, я пытаюсь изменить приведенный выше скрипт так, чтобы я добавлял значение агрегации в качестве нового столбца как sum(id)

query = """SELECT {}, sum(id)
           FROM table group by {}""".format(', '.join(str(field) for field in list_name))

Выше выдает ошибку IndexError: tuple index out of range

Попытка определить, где я ошибаюсь, в приведенном выше редакторе добавления агрегации

1 Ответ

1 голос
/ 11 марта 2020

Для второго запроса вам необходимо дважды пропустить поля (один раз для SELECT и один раз для GPOUP):

fields = ', '.join(str(field) for field in list_name)
query = """SELECT {}, sum(id) FROM table group by {}""".format(fields, fields)
...