sql计算保留

时间:2017-06-30 01:47:03

标签: sql sqlite

如何计算SQL中的保留率以作为列添加到我的表

  1. 第一天,我在巴西有411位独特用户
  2. 第二天只有154名用户回来(保留率为154/411)
  3. 第三天只有115人再次回来(115/154)
  4. 去年,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
    
  5. 输出:

    保留率

    的列

1 个答案:

答案 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');