繁体   English   中英

SQLAlchemy-计数状态为true

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM