嘿,我已经在论坛上搜索了类似的东西,但是找不到任何东西。我正在尝试获得转换百分比,因此漏斗底部的计数除以漏斗顶部的计数。这两个计数存在于我的数据库中两个不可连接的单独表中。
我写了这段代码但是当我知道它不应该是0时,它会继续变为0
SELECT
(((
SELECT COUNT(p.id)
FROM partner_subscriptions AS p)
/
(
SELECT COUNT(a.id)
FROM salesforce_leads AS a)) * 100) as percentage
答案 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