Hive详解(4)

Hive

窗口函数

分析函数

  1. 聚合函数,例如sumavgmaxmin

  2. 移位函数

    1. lag(colName, n):以当前行为基础,来处理第前n行的数据

    2. lead(colName, n):以当前行为基础,来处理第后n行的数据

    3. ntile(n):要求数据必须有序,将有序的数据依次放入n个桶中,保证每个桶中的数据几乎一致,相差最多不超过1个

  3. 排序函数

    1. row_number:数据排序之后,按顺序给数据进行编号,即使数据相同,也是给定不同的编号

    2. rank:数据排序之后,按顺序给数据进行编号,如果数据相同,则给定相同的序号,会产生空位

    3. dense_rank:数据排序之后,按顺序给数据进行编号,如果数据相同,则给定相同的序号,但是不会产生空位

移位函数案例

  1. 需求二:查询每一位顾客的消费明细以及上一次的消费时间

    复制代码
    select *,
           lag(order_date, 1) over (partition by name order by order_date) as last_order_date
    from orders;
  2. 需求三:查询最早进店消费的前20%的顾客信息

    复制代码
    select * from (
        select *,
               ntile(5) over (order by order_date) as n
        from orders
    ) t1 where n = 1;

排序函数案例

  1. 原始数据

    复制代码
    Bob Chinese 85
    Alex Chinese 76
    Bill Chinese 78
    David Chinese 92
    Jack Chinese 69
    Lucy Chinese 74
    LiLy Chinese 78
    Bob Maths 91
    Alex Maths 82
    Bill Maths 69
    David Maths 60
    Jack Maths 69
    Lucy Maths 71
    LiLy Maths 82
    Bob English 60
    Alex English 62
    Bill English 85
    David English 85
    Jack English 69
    Lucy English 78
    LiLy English 93
  2. 案例

    复制代码
    -- 建表
    create table scores (
        name    string,
        subject string,
        score   int
    ) row format delimited fields terminated by ' ';
    -- 加载数据
    load data local inpath '/opt/hive_data/scores' into table scores;
    -- 查询数据
    select *
    from scores tablesample (5 rows);
    -- 按科目对成绩进行降序排序
    select *,
           row_number() over (partition by subject order by score desc) as rn,
           rank() over (partition by subject order by score desc)       as ra,
           dense_rank() over (partition by subject order by score desc) as dr
    from scores;
    -- 获取各科目前三名的信息
    select * from (
        select *, rank() over (partition by subject order by score desc) as n from scores
    ) t where n <= 3;
相关推荐
阿部多瑞 ABU6 小时前
新帝国殖民主义:文化-情感-金融复合体的当代运作机制
大数据·人工智能·金融
动恰客流统计6 小时前
ReID边缘计算视觉统计:餐饮店客流增长的数字化破局路径
java·大数据·运维·人工智能
狙击主力投资工具11 小时前
通达信电脑版分时图成交量颜色怎么调? 分时成交量的的颜色怎么修改.股票分时图成交量修改颜色
大数据
A153625512 小时前
国内进销存软件排名2026 电商&零售企业选型指南
大数据·人工智能·零售
Warren2Lynch12 小时前
掌握 UML 构造型、标记定义与标记值:面向领域特定建模的 UML 扩展全面指南
大数据·算法·uml
晓子文集13 小时前
Tushare接口文档:期货交易日历(fut_trade_cal)
大数据·算法
老胡全房源系统13 小时前
可以买断的房产中介ERP系统
大数据
专业工业电源打工人14 小时前
F0505S-2WR3 适配优选 钡特电源 DF2-05S05LS|2W 隔离 DC-DC 模块电源5V转5V硬件选型参数规格解析
大数据·网络·人工智能
暖和_白开水14 小时前
数据分析agent(九-2):es启动补充
大数据·elasticsearch·搜索引擎
海兰14 小时前
基于 ES|QL 的 Kubernetes 监控工具箱:使用 ES|QL 进行 Kubernetes 监控,从内存压力到错误日志
大数据·elasticsearch·kubernetes