psycopg2 - 将聚合作为列添加到脚本传递列表

psycopg2 - Adding aggregation to a script passing list as columns

我有一个列列表,我试图将其作为列作为 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

试图找出我在上面添加聚合的编辑中哪里出错了

对于第二个查询,您需要传递两次字段(一次用于 SELECT,一次用于 GPOUP):

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