我有一个销售数据,其中我有一个名为阶段的列,其中有三个类别获胜,丢失和开放。
我想写一个转换率查询。从舞台上获得的金额赢得了一个销售代表赢得+损失的金额。销售代表在赢得的阶段和120个阶段(赢得和输掉的阶段)总计50个。所以我的查询应该执行50/120。请提供数据的图像链接。
select
id, sum(sales)
from
df
where
id = '123'
and stage ='won'
group by
id
having
sum(sales) / (select sum(sales)
from df
where stage = 'Won' OR stage = 'Lost')
我从此查询中收到错误。不知道如何得到答案。 enter image description here
答案 0 :(得分:1)
也许这就是你想要的:
select id,
sum(case when stage = 'won' then sales end) * 1.0 / sum(sales)
from your_table
where stage in ('won', 'lost')
group by id;
如果denomintor可以为0,请使用NULLIF
以避免除以零错误并返回null。
select id,
sum(case when stage = 'won' then sales end) * 1.0 / nullif(sum(sales), 0)
from your_table
where stage in ('won', 'lost')
group by id;