如何计算SQL中的保留率以作为列添加到我的表
去年,98名用户中只有81人回来了
Country Date sum_views distinct_user_ids
Brazil 5/5/2016 3793 411
Brazil 5/6/2016 1632 154
Brazil 5/7/2016 1456 115
Brazil 5/8/2016 1223 98
Brazil 5/9/2016 993 81
Canada 5/5/2016 6419 708
Canada 5/6/2016 2649 235
Canada 5/7/2016 2578 197
Canada 5/8/2016 2024 151
Canada 5/9/2016 1893 141
United states 5/5/2016 13007 1438
United states 5/6/2016 5755 522
United states 5/7/2016 5502 419
United states 5/8/2016 4915 362
United states 5/9/2016 3713 284
输出:
保留率
的列答案 0 :(得分:2)
您需要分母的先前值。您可以使用相关子查询来获取它:
select t.*, tprev.distinct_user_ids,
(t.distinct_user_ids / tprev.distinct_user_ids)
from t join
t tprev
on tprev.country = t.country and
tprev.date = date(t.date, '-1 day');