gpt4 book ai didi

python - sqlalchemy 按计数列过滤

转载 作者:太空狗 更新时间:2023-10-29 22:16:54 26 4
gpt4 key购买 nike

我有一个用户查询,它按每个用户的订单数量 (ordersCount) 进行过滤。

User.query.filter('ordersCount>2')

如果我运行它,它会显示:“‘where 子句’中的未知列‘ordersCount’”

根据我的经验,我应该在此类操作上使用 having,因为 mysql 不允许它用于不属于表的字段,但是如果我使用 having 而不是过滤器运行它,我会得到:

(1054, "Unknown column 'ordersCount' in 'having clause'") 'SELECT count(1) AS count_1 \nFROM user \nHAVING ordersCount > 2' ()

那么如何在 sqlalchemy 中过滤计数列呢?

最佳答案

参见 Ordering, Grouping, Limiting, Offset...ing 的文档.根据提供的示例代码和假设您的订单存储在 orders 表中,您的版本看起来类似于:

>>> s = select([orders.c.user_id, func.count(orders.c.id)]).\
... group_by(orders.c.user_id).having(func.count(orders.c.id) > 2)

通过这种方式,您将获得相关用户的 user_id。如果你想检索 User 对象,只需制作关于子查询的 s 并将你的 User 查询与此子查询连接起来以检索有问题的用途。

关于python - sqlalchemy 按计数列过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6244038/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com