[英]SQLAlchemy - count status is true
我在数据库中有两个表。 一个被命名为company,另一个被命名为company_map。 公司表如下:
C_ID NAME Contact
1 a 12334
2 b 12335
3 c 12336
4 d 12337
5 e 12338
company_map表类似:
M_ID C_ID STATUS
1 1 True
2 1 False
3 1 True
4 3 True
5 3 True
我需要计算company_map表中STATUS为true的数量,并按C_ID分组。 例如,我需要获取C_ID的数量为1,并且其STATUS为true,应该为2。现在我可以获取C_ID的数量,通过使用func.count(company_map.C_ID),它将获得3。如何计算状态== true()? 我尝试了一些方法,但是没有用。
我从布尔列上的SQLAlchemy func.count了解到
.having(func.count(case([(company_map.STATUS, 1)])) < func.count(company_map.C_ID))
如果您的SQLAlchemy是最新版本,则可以使用
.having(func.count(1).filter(company_map.STATUS))
比旧的干净。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.