我有一份活动清单。一个事件名称是创建一个帐户,另一个事件名称是创建一个Facebook帐户。我正在尝试查看使用Facebook创建的帐户百分比。
下面的代码将为我提供有关Facebook帐户和总帐户数的准确计数,但是当我尝试将两个数字相除时,它的数字仅为1。
我对SQL还是很陌生,花了数小时试图弄清楚为什么这样做无济于事。
with
fb_act as (
select *
from raw_event
where name = 'onboard_fb_success'
and event_ts::date >= current_date - 30
),
total_act as (
select *
from raw_event
where name ='create_account'
and event_ts::date >= current_date - 30
)
select count(fb_act)/count(total_act), total_act.event_ts::date as day
from total_act, fb_act
group by day
order by day
我希望输出约为〜.3,但实际输出始终始终为1。
答案 0 :(得分:0)
条件聚合是编写查询的一种简单得多的方法。您似乎正在使用Postgres,所以类似这样:
select re.event_ts::date as day,
(sum( (name = 'onboard_fb_success' and event_ts::date >= current_date - 30):: int) /
sum( name = 'create_account' and event_ts::date >= current_date - 30)::int)
) as ratio
from raw_event re
group by re.event_ts::date
order by day;