如何在peewee中显示相同列值项的列表?

Posted

技术标签:

【中文标题】如何在peewee中显示相同列值项的列表?【英文标题】:How to show a list of same column value item in peewee? 【发布时间】:2020-12-03 10:10:45 【问题描述】:

如何在 python peewee 中使用 group_by?

这是我的桌子:

   order_id    |              eatery_id
---------------+--------------------------------------
 1596949079845 | 8e0c6adc-a65e-4a9b-95d2-82284299719d
 1596949235150 | 8e0c6adc-a65e-4a9b-95d2-82284299719d
 1596949298783 | 8e0c6adc-a65e-4a9b-95d2-82284299719d
 1596953145084 | 8e0c6adc-a65e-4a9b-95d2-82284299719d
 1596953145084 | 184fa936-9835-449c-ac8c-fb72a789a96a
 1596953600173 | 8e0c6adc-a65e-4a9b-95d2-82284299719d
 1596953600173 | 184fa936-9835-449c-ac8c-fb72a789a96a
 1596953600173 | 184fa936-9835-449c-ac8c-fb72a789a96a
 1597322217541 | 8e0c6adc-a65e-4a9b-95d2-82284299719d
 1597322217541 | 8e0c6adc-a65e-4a9b-95d2-82284299719d
 1597322217541 | 8e0c6adc-a65e-4a9b-95d2-82284299719d
 1597322506231 | 8e0c6adc-a65e-4a9b-95d2-82284299719d
 1597322506231 | 8e0c6adc-a65e-4a9b-95d2-82284299719d
 1597322506231 | 184fa936-9835-449c-ac8c-fb72a789a96a
 1597322506231 | 184fa936-9835-449c-ac8c-fb72a789a96a
 1596449173498 | 184fa936-9835-449c-ac8c-fb72a789a96a
 1596449778585 | 184fa936-9835-449c-ac8c-fb72a789a96a

如果我用 SQL 写这个,它会是这样的:

SELECT order_id
FROM table_name
WHERE eatery_id = '8e0c6adc-a65e-4a9b-95d2-82284299719d'
GROUP_BY order_id
 

这是我尝试过的:

query = Purchases.select().where(Purchases.eatery_id == '8e0c6adc-a65e-4a9b-95d2-82284299719d').group_by(Purchases.order_id)

当我运行时它给了我错误:

for q in query:
  print(q.order_id)

出现此错误:

peewee.InternalError:current transaction is aborted, commands ignored until end of transaction block

【问题讨论】:

【参考方案1】:

该错误通常意味着之前执行的查询有错误,现在事务处于错误状态,需要回滚。

文档中有使用 group by 的示例:http://docs.peewee-orm.com/en/latest/peewee/querying.html#aggregating-records

【讨论】:

以上是关于如何在peewee中显示相同列值项的列表?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 peewee 中预取?

如何在不删除先前相同值的情况下选择具有重复项的列表中的特定数字?

如何在另一个列表视图中显示其各自组项的子项

如何有效地输出具有相同内容的文件列表?

熊猫将具有相同索引的一列值组合到列表中[重复]

如何显示上一个和下一个列表项的详细信息