美文网首页
Hive分析函数的使用

Hive分析函数的使用

作者: 环语 | 来源:发表于2019-01-08 17:04 被阅读0次

    Hive分析函数的使用

    测试数据集:

    SQL语句## COUNT、SUM、MIN、MAX、AVG

    ## COUNT、SUM、MIN、MAX、AVG

    select user_id

          ,user_type

          ,sales

          ,sum(sales) OVER(partition by user_type order by sales asc) as sales_1 --默认为从起点到当前行

          ,sum(sales) OVER(partition by user_type order by sales asc ROWS between UNBOUNDED PRECEDING and current row) as sales_2 --从起点到当前行,结果与sales_1不同。

          ,sum(sales) OVER(partition by user_type order by sales asc ROWS between 3 PRECEDING and current row) as sales_3  --当前行+往前3行

          ,sum(sales) OVER(partition by user_type order by sales asc ROWS between 3 PRECEDING and 1 FOLLOWING) as sales_4 --当前行+往前3行+往后1行

          ,sum(sales) OVER(partition by user_type order by sales asc ROWS between current row and UNBOUNDED FOLLOWING) as sales_5 --当前行+往后所有行 

          ,sum(sales) OVER(partition by user_type) as sales_6 --分组内所有行

      from order_detail

    order by user_type

            ,sales

            ,user_id;

    SQL代码
    运行结果

    注意:

    结果和ORDER BY相关,默认为升序

    如果不指定ROWS BETWEEN,默认为从起点到当前行;

    如果不指定ORDER BY,则将分组内所有值累加;

    关键是理解ROWS BETWEEN含义,也叫做WINDOW子句:

    PRECEDING:往前

    FOLLOWING:往后

    CURRENT ROW:当前行

    UNBOUNDED:无界限(起点或终点)

    UNBOUNDED PRECEDING:表示从前面的起点

    UNBOUNDED FOLLOWING:表示到后面的终点

    其他COUNT、AVG,MIN,MAX,和SUM用法一样。

    相关文章

      网友评论

          本文标题:Hive分析函数的使用

          本文链接:https://www.haomeiwen.com/subject/jldbrqtx.html