hive--GROUPING SETS方法产生的聚合问题

--- 这是计算pv uv指标
  select
    COALESCE(activity_id,'ALL')             as activity_id          
    , COALESCE(page_name,'ALL')             as page_name

    , COALESCE(product,'ALL')               as product
    , COALESCE(product_browse_name,'ALL')   as product_browse_name

    , COALESCE(platform,'ALL')              as platform
    
    , COALESCE(entry_src,'ALL')             as entry_src
    , GROUPING__ID
    , SUM(show_cnt)                         as show_cnt
    , COUNT(distinct user_id)               as show_user_num
  FROM(
      select  
        activity_id
        , product
        , page_name
        , platform

        , product_browse_name
        , entry_source    AS entry_src
        , user_id
        , count(1)  as show_cnt
      from
        xxx.xxxxx
      WHERE
        p_date = '20201006'
        and show_page_action='mm'
      group by 
        activity_id
        , product
        , page_name
        , platform
        , product_browse_name
        , entry_source
        , user_id
      )t1
  group by
    activity_id
    , page_name

    , product
    , product_browse_name

    , platform
    , entry_src
  GROUPING SETS(
    (product_browse_name,platform,entry_src),
    (activity_id,page_name,product,product_browse_name),
    (activity_id,page_name,platform),
    (activity_id,page_name,entry_src),
    (activity_id,page_name,product,product_browse_name,platform),
    (activity_id,page_name,product,product_browse_name,entry_src),
    (activity_id,page_name,platform,entry_src),
    (activity_id,page_name,product,product_browse_name,platform,entry_src)
  )
select
    product_browse_name
    , platform
    , entry_src
    , SUM(show_cnt)                         as show_cnt
    , COUNT(distinct user_id)               as show_user_num
    , COUNT(distinct device_id)             as show_device_num
  FROM(
      select  
        activity_id
        , page_name
        , product
        , product_browse_name
        
        , platform
        , entry_source    AS entry_src
        , device_id
        , user_id
        , count(1)  as show_cnt
      from
        xxx.xxxx
      WHERE
        p_date = '20201006'
        and show_page_action='mm'
      group by 
        activity_id
        , product
        , page_name
        , platform
        , product_browse_name
        , entry_source
        , device_id
        , user_id
      )t1
  group by
    product_browse_name
    , platform
    , entry_src

上面那个结果 grouping__id为56的为什么和下面的结果不一样

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值