我有一个包含以下字段的分析表:
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;