繁体   English   中英

计算指定条件下的转化率

[英]Calculate conversion rate with the specified conditions

这是我的样本 data.table:

ID 地位
1个 新的
1个 处理
2个 新的
2个 处理
3个 新的
3个 处理
4个 处理
5个 新的

我在这里要解决的是计算从“新”状态到“已处理”状态的转换率。 从数据集中,只有ID号1、2和3满足了我的问题的要求,而ID号4和5则没有两个阶段。 所以理论上转化率应该是3/5 * 100% = 60%。 我如何 select 数据才能计算同时具有“新”和“已处理”状态的 ID。

这是我试过的代码,但我知道它是错误的,因为它提取了所有 ID,但它们之间没有链接。

SELECT 'Conversion rate from Assigned enquiry to In progess leads' as 'Name', round((a.processed / b.new),3) * 100 as 'Answer'
FROM
(
SELECT cast(count(ID)as float) as processed
from table1
WHERE STATUS_ID = 'Processed'
) as a
cross join
(
SELECT cast(count(ID)as float) as new
from table_1
WHERE STATUS_ID = 'NEW'
) as b

我们可以在这里使用条件聚合:

WITH cte AS (
    SELECT CASE WHEN COUNT(CASE WHEN Status = 'New' THEN 1 END) > 0 AND
                     COUNT(CASE WHEN Status = 'Processed' THEN 1 END) > 0
                THEN 1 ELSE 0 END AS cnt
    FROM yourTable
    GROUP BY ID
)

SELECT 100.0 * SUM(cnt) / COUNT(*)
FROM cte;

暂无
暂无

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

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