gpt4 book ai didi

mysql - 选择计算 SQL 的正值/负值

转载 作者:行者123 更新时间:2023-11-29 12:53:42 29 4
gpt4 key购买 nike

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

这是我尝试过的。

User.select("workplaces.name as workplace_name, count(*) as FTE, (count(case when   users.gender='m' and users.created_at BETWEEN date_trunc('month', now()) and now() then 1   end)::float - count(case when users.gender='f' and users.created_at BETWEEN   date_trunc('month', now()) and now() then 1 else null end)::float)/100 as ratio").joins("INNER   JOIN workplaces on workplaces.id=users.workplace_id").group(:workplace_name).order("ratio    desc").limit(5).map(&:attributes)

上面的查询获取工作场所中的男性和女性用户并计算 (女性 - 男性)/100。我得到的比率为正值和负值。

如何仅选择计算的比率的正值/负值

谢谢

最佳答案

您可以在此处使用 HAVING 子句,因为它接受任何表达式,而不仅仅是列,例如:

HAVING (expr_for_ratio) > 0

SQLFiddle

此外,您可以在此处使用子查询,但是在 Rails 的 api 中编写起来会很复杂。

关于mysql - 选择计算 SQL 的正值/负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24403909/

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