繁体   English   中英

Sql count查询始终返回1

[英]Sql count query always return 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因为count返回整数。你需要将它们转换成浮点数,这样你才能得到百分比。 此外,在这种情况下,只输出分子就足够了。这将返回浮点数中的商。

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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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