为表中的所有唯一值分配字段值



我有一个包含以下字段的分析表:

unique_id,

收入

页面名称

为用户访问的每个页面创建一个分析记录。我想回答的问题是:有多少收入来自去过地图屏幕(pagename=mapview)的用户与没有去过的用户。仅当用户点击具有交易元素的页面时,才会记录收入。我没有跟踪用户在点击包含事务元素的页面后是否访问过地图视图

我是否需要创建一个单独的表来跟踪特定用户 (unique_id) 是否访问过地图屏幕,然后将其与原始表联接?还是有更简单的方法?

你可以使用聚合来做到这一点——两个级别的聚合:

select isMapView, sum(revenue), count(*) as numUsers
from (select unique_id, sum(revenue) as revenue,
             max(case when pagename = 'mapview' then 1 else 0 end) as isMapView
      from t
      group by unique_id
     ) u
group by isMapView;

相关内容

最新更新