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

时间:2016-04-27 00:44:20

标签: sql postgresql

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

  

UNIQUE_ID,

     

收入,

     

页面名

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

我是否需要创建一个单独的表来跟踪特定用户(unique_id)是否已到达地图屏幕然后将其与原始表连接?或者有更简单的方法吗?

1 个答案:

答案 0 :(得分:1)

您可以通过聚合执行此操作 - 两个级别的聚合:

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;