gpt4 book ai didi

mysql - 从数据库中选择多个计数

转载 作者:行者123 更新时间:2023-11-29 03:00:33 24 4
gpt4 key购买 nike

我有一个 User 模型和一个 Workplace 模型。用户有一个字段性别(男/女),每个工作场所都有很多用户。我想选择工作场所的用户总数以及工作场所的女性用户总数,均按工作场所名称分组。

这是我尝试过的。

User.select("workplaces.name as workplace_name, count(*), count(case when users.gender='f' then 1 else 0 end) as females").joins("INNER JOIN workplaces on 
workplaces.id=users.workplace_id").group(:workplace_name).map(&:attributes)

我使用条件选择女性用户计数的第二个计数似乎不起作用。给出与第一次计数相同的结果。

查询有问题吗?需要改变什么?

感谢您的回答。

更新:

我用 NULL 替换了 0,它起作用了。现在我想同时获得男性和女性用户并进行计算(女性 - 男性)/100,我如何在此查询中实现这一目标。

谢谢

最佳答案

表达式 case when users.gender='f' then 1 else 0 end 永远不会返回 NULL 这意味着 COUNT 将被计数此表达式的所有实例,无论是 1 还是 0

将第二个 COUNT 替换为 SUM

关于mysql - 从数据库中选择多个计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24401598/

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