在没有连接的情况下从两个不同的sql表中划分计数

时间:2015-09-27 14:15:05

标签: mysql sql count

嘿,我已经在论坛上搜索了类似的东西,但是找不到任何东西。我正在尝试获得转换百分比,因此漏斗底部的计数除以漏斗顶部的计数。这两个计数存在于我的数据库中两个不可连接的单独表中。

我写了这段代码但是当我知道它不应该是0时,它会继续变为0

SELECT
(((
SELECT COUNT(p.id)
FROM partner_subscriptions AS p)
/
(
SELECT COUNT(a.id)
FROM salesforce_leads AS a)) * 100) as percentage

2 个答案:

答案 0 :(得分:2)

SQL Server进行整数除法(MySQL没有)。您可以通过获取实数而不是整数来解决问题

SELECT ((SELECT 1.0*COUNT(p.id) FROM partner_subscriptions p) /
        (SELECT COUNT(sl.id) FROM salesforce_leads sl) * 100)
       ) as percentage

我也是格式化代码的忠实粉丝,所以它是可读的。

编辑:

在MySQL中,你只能在

时得到零
SELECT COUNT(p.id)
FROM partner_subscriptions p

返回0.或者,如果从查询中读取返回的值时有错误。

答案 1 :(得分:1)

你做整数部门。这意味着4/10 = 0.您需要将一个数字转换为浮点数/小数或乘以1.0得到1.0 * 4/10 = 0.4

SELECT (( 1.0 *
       (SELECT COUNT(p.id)
        FROM partner_subscriptions AS p) /
       (SELECT COUNT(a.id)
        FROM salesforce_leads AS a) ) * 100) AS percentage