[英]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.