hive之LEAD 函数详解

1. 函数概述

LEAD 是 Hive 中的窗口函数,用于获取当前行之后指定偏移量处的行的值。常用于分析时间序列数据、计算相邻记录的差异或预测趋势。

2. 语法

复制代码
LEAD(column, offset, default) OVER (
    [PARTITION BY partition_column] 
    [ORDER BY order_column [ASC|DESC]]
)
  • column: 要获取后续值的列。

  • offset (可选): 向后查找的行数,默认为 1。

  • default (可选): 无后续行时的默认值,默认为 NULL。

  • PARTITION BY: 将数据划分为多个窗口(类似分组)。

  • ORDER BY: 定义窗口内的排序方式。

3.代码示例

sql 复制代码
CREATE TABLE sales_lead (
    sale_date STRING,
    salesperson STRING,
    amount INT
);

INSERT INTO sales_lead VALUES
('2023-01-01', 'Alice', 100),
('2023-01-02', 'Alice', 150),
('2023-01-03', 'Alice', 200),
('2023-01-01', 'Bob', 80),
('2023-01-02', 'Bob', 120);
sql 复制代码
---示例 1:获取下次销售额
SELECT 
    salesperson,
    sale_date,
    amount AS current_amount,
    LEAD(amount, 1, 0) OVER (
        PARTITION BY salesperson 
        ORDER BY sale_date
    ) AS next_amount
FROM sales_lead;
sql 复制代码
--示例 2:计算与下次销售的时间间隔
SELECT 
    salesperson,
    sale_date,
    LEAD(sale_date, 1) OVER (
        PARTITION BY salesperson 
        ORDER BY sale_date
    ) AS next_sale_date,
    DATEDIFF(
        LEAD(sale_date, 1) OVER (
            PARTITION BY salesperson 
            ORDER BY sale_date
        ), 
        sale_date
    ) AS days_diff
FROM sales_lead;
相关推荐
十月南城14 小时前
Hive与离线数仓方法论——分层建模、分区与桶的取舍与查询代价
数据仓库·hive·hadoop
鹏说大数据15 小时前
Spark 和 Hive 的关系与区别
大数据·hive·spark
B站计算机毕业设计超人15 小时前
计算机毕业设计Hadoop+Spark+Hive招聘推荐系统 招聘大数据分析 大数据毕业设计(源码+文档+PPT+ 讲解)
大数据·hive·hadoop·python·spark·毕业设计·课程设计
B站计算机毕业设计超人15 小时前
计算机毕业设计hadoop+spark+hive交通拥堵预测 交通流量预测 智慧城市交通大数据 交通客流量分析(源码+LW文档+PPT+讲解视频)
大数据·hive·hadoop·python·spark·毕业设计·课程设计
AI架构师小马15 小时前
Hive调优手册:从入门到精通的完整指南
数据仓库·hive·hadoop·ai
数据架构师的AI之路15 小时前
深入了解大数据领域Hive的HQL语言特性
大数据·hive·hadoop·ai
Gain_chance17 小时前
33-学习笔记尚硅谷数仓搭建-DWS层交易域用户粒度订单表分析及设计代码
数据库·数据仓库·hive·笔记·学习·datagrip
佐伊233 天前
SQL优化剧场:当Hive/MaxCompute遇上数据倾斜的十二种剧情
hive·sql优化·maxcompute·数据倾斜
Amber勇闯数分3 天前
【Hive】基于物品协同过滤 [ ItemCF ] 推荐课程-余弦相似度计算
大数据·数据仓库·hive·hadoop·矩阵
努力有什么不好3 天前
SparkSQL如何查询外部hive数据
数据仓库·hive·hadoop