zoukankan      html  css  js  c++  java
  • Hive的分析函数的使用

    原文:

    https://www.toutiao.com/i6769120000578945544/?group_id=6769120000578945544

    我们先准备数据库、表和数据

    Hive的分析函数的使用

     

    Hive的分析函数的使用

     

    Hive的分析函数的使用

     

    开窗分析函数相对于mysql中的聚合函数区别是:分析函数是基于某个组多个数据进行计算聚合,而聚合函数是每个组返回一行数据。

    官网

    Hive的分析函数的使用

     

    Hive的分析函数的使用

     

    Hive的分析函数的使用

     

    我们先做个例子感受下:

    要求: 查询部门编号为10的所有的员工,按照薪资降序排序

    Mysql实现:select empno,ename,deptno,sal from emp where deptno=10 order by sal desc;

    Hive的分析函数的使用

     

    如果要求是:将每个部门薪资最高的那个人的薪资显示在最后一行。

    select empno,ename,deptno,sal, max(sal) over(partition by deptno order by sal desc) as sal_max from emp;

    Hive的分析函数的使用

     

    Hive的分析函数的使用

     

    我们看官网这个位置

    Hive的分析函数的使用

     

    Hive的分析函数的使用

     

    我们来解释里面的概念

    当前有一个数据

    Hive的分析函数的使用

     

    CURRENT ROW

    Hive的分析函数的使用

     

    UNBOUNDED PRECEDING 初始行

    PRECEDING 前一行

    CURRENT ROW 当前行

    FOLLOWING 后一行

    UNBOUNDED FOLLOWING 最后一行

    Hive的分析函数的使用

     

    所以上面的语句我们变动下

    select empno,ename,deptno,sal, max(sal) over(partition by deptno order by sal desc ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as sal_max from emp;

    可以控制窗口大小

    Hive的分析函数的使用

     

    结果是一样的,但是窗口大小我们做了变化

    Hive的分析函数的使用

     

    我们准备数据

    Hive的分析函数的使用

     

    创建一个表

    Hive的分析函数的使用

     

    Hive的分析函数的使用

     

    载入数据

    load data local inpath '/data/hivetest/anal.txt' into table analytical;

    Hive的分析函数的使用

     

    语句1:

    Hive的分析函数的使用

     

    Hive的分析函数的使用

     

    我们看结果

    Hive的分析函数的使用

     

    语句2

    Hive的分析函数的使用

     

    Hive的分析函数的使用

     

    Hive的分析函数的使用

     

    语句3

    Hive的分析函数的使用

     

    Hive的分析函数的使用

     

    语句4

    Hive的分析函数的使用

     

    Hive的分析函数的使用

     

    语句5

    Hive的分析函数的使用

     

    Hive的分析函数的使用

     

    语句6

    Hive的分析函数的使用

     

    Hive的分析函数的使用

     

    已上是窗口和基本语句的使用。

    我们来看ROW_NUMBER

    Hive的分析函数的使用

     

    将每个部门薪资最高的那个人的薪资降序排序并且显示唯一的编号ROW_NUMBER

    Hive的分析函数的使用

     

    Hive的分析函数的使用

     

    获取每个部门薪资最高的前两位(嵌套子查询)

    Hive的分析函数的使用

     

    Hive的分析函数的使用
  • 相关阅读:
    关于前端输入框的限制和有效值
    js,jquery转json的几种方法
    java,js,jstl,EL的简单交互
    mysql字段冲突报错
    js的一些压缩和优化性能
    一个不错的html素材网站
    redis之数据操作详解
    redis之持久化操作
    redis之django-redis
    redis知识总汇
  • 原文地址:https://www.cnblogs.com/bqwzy/p/12528611.html
Copyright © 2011-2022 走看看