0

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

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

4

1 回答 1

1

对于第二个查询,您需要将字段传递两次(一次 forSELECT和一次 for GPOUP):

fields = ', '.join(str(field) for field in list_name)
query = """SELECT {}, sum(id) FROM table group by {}""".format(fields, fields)
于 2020-03-11T10:09:26.277 回答