工作笔记-hive(1)-grouping sets

浏览: 1716

#工作杂记

#维度:行业、仓库、全部行业、全部仓库

#为减少tmp表 使用grouping sets

insert overwrite table tpm_p1

partition(pt_date='${hivevar:partition_day}')

select '${hivevar:partition_day}',

       t.company_code,

       nvl(t.industry,'全部行业'),

       nvl(t2.warehouse_name,'全部仓库'),

       t.sku_no,

       row_number() over(partition by t.company_code, nvl(t.industry,'全部行业') , nvl(t2.warehouse_name,'全部仓库') order by t.sku_num desc) rn ,

       regexp_replace('${hivevar:partition_day}','-','')

  from (

    select 

           company_code,

           industry,

           warehouse_code,

           sku_no,

           sum(sku_num) as sku_num 

      from tmp_p2 t1

     where data_date='${hivevar:partition_day}'

       and intime_sign = '1'

     group by company_code,industry,warehouse_code,sku_no

     grouping sets(

           (company_code,industry,warehouse_code,sku_no),

           (company_code,industry,sku_no),

           (company_code,warehouse_code,sku_no),

           (company_code,sku_no)

      )

     ) t

   left join tmp_p3 t2

        on t.warehouse_code = t2.warehouse_code

      and t.company_code=t2.company_code;

使用grouping sets的查询中不能用别名

推荐 0
本文由 liliwu 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册