SQL计数查询总是返回1



我正在使用此查询来找出女性员工的百分比。但是不知何故,当我将该操作结合在一个查询中时,如下一个查询时,它总是返回1.0。

但是,如果我单独查询并将其分开,那是正确的。我想我在这里弄乱了一些语法。

我在做什么错?

employeescitizens是两个表。

SELECT (count(e.name)/count(c.name))
from citizens as c, employees as e
where c.gender=false and e.gender=false

您只是在两个表中的行之间创建一个交叉产品,然后计算结果跨产品中的行数。您需要使用单独的查询来计算每个计数:

SELECT (SELECT COUNT(*) FROM employees WHERE gender = false)/
       (SELECT COUNT(*) FROM citizens WHERE gender = false)

您要获得1,因为计数返回整数。另外,在这种情况下,只有施放分子就足够了。这将返回浮子中的商。

SELECT cast(count(e.name)as float)/count(c.name)
from citizens as c, employees as e
where c.gender=false and e.gender=false;

相关内容

  • 没有找到相关文章

最新更新