Hive窗口函数整理

Hive 中的窗口函数允许你在结果集的一个特定"窗口"内对行进行计算。这些窗口可以是物理的(基于行在数据中的实际位置)或逻辑的(基于行的一些排序标准)。窗口函数在处理排名、计算累计和或计算移动平均值等问题时特别有用。

以下是一些 Hive 中的常见窗口函数:

  1. ROW_NUMBER()

    • 为窗口中的每一行分配一个唯一的整数编号。
    • 示例:ROW_NUMBER() OVER (ORDER BY column_name)
  2. RANK()

    • 为窗口中的每一行分配一个唯一的排名,对于并列的值会有相同的排名,并且会留下一些排名的间隙。
    • 示例:RANK() OVER (ORDER BY column_name)
  3. DENSE_RANK()

    • 与 RANK() 类似,但不会留下排名间隙。
    • 示例:DENSE_RANK() OVER (ORDER BY column_name)
  4. NTILE(n)

    • 将窗口中的行分成指定数量的近似相等的组,并为每一行返回其组号。
    • 示例:NTILE(4) OVER (ORDER BY column_name)
  5. LAG(column, n, default)

    • 返回当前行之前的第 n 行的指定列的值。如果不存在这样的行,则返回默认值。
    • 示例:LAG(column_name, 1, 0) OVER (ORDER BY another_column)
  6. LEAD(column, n, default)

    • 返回当前行之后的第 n 行的指定列的值。如果不存在这样的行,则返回默认值。
    • 示例:LEAD(column_name, 1, 0) OVER (ORDER BY another_column)
  7. FIRST_VALUE(column)

    • 返回窗口中的第一行的指定列的值。
    • 示例:FIRST_VALUE(column_name) OVER (ORDER BY another_column)
  8. LAST_VALUE(column)

    • 返回窗口中的最后一行的指定列的值。
    • 示例:LAST_VALUE(column_name) OVER (ORDER BY another_column ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)

注意:在使用 LAST_VALUE() 时,通常需要指定窗口范围,因为默认窗口可能不会包括所有行。

  1. SUM(), AVG(), MIN(), MAX()

    • 这些聚合函数也可以与窗口一起使用,以在窗口上执行计算,而不是在整个结果集上执行。
    • 示例:SUM(column_name) OVER (ORDER BY another_column ROWS BETWEEN 1 PRECEDING AND CURRENT ROW)

这只是 Hive 中窗口函数的一个简短列表。当与其他 SQL 功能(如分区、排序和子查询)结合使用时,窗口函数可以非常强大。

相关推荐
ifenxi爱分析29 分钟前
爱分析最新报告解读:AI数据基础设施与数据中台的区别
大数据·人工智能
品牌全球行1 小时前
共商共建共享 链接数字未来——“一带一路数字新城(深圳)会客厅筹备办”揭牌仪式在深圳隆重举行
大数据·人工智能
数智化管理手记3 小时前
账龄分析手工统计易遗漏?自动账龄分析工具怎么搭建
大数据·网络·数据库·人工智能·数据挖掘
ApacheSeaTunnel4 小时前
Apache SeaTunnel AI CLI Benchmark:7 款大模型、100 个 ETL 任务实测,谁真正能跑起来?
大数据·ai·开源·大模型·数据集成·cli·seatunnel·技术分享·数据同步
电商API_180079052474 小时前
企业ERP进销存场景|京东商品详情接口自动同步方案|凭证鉴权批量调用技术实操
大数据·运维·人工智能·爬虫·数据挖掘·网络爬虫
小稻穗5 小时前
市场调研样本选型坐标系:2026六家国内样本平台能力横向校验
大数据·运维·数据分析
极光代码工作室5 小时前
基于Spark的日志监控与分析平台
大数据·hadoop·python·spark·数据可视化
wuhanzhanhui5 小时前
从高强钢到碳纤维!2026武汉汽车材料轻量化制造技术展会,重塑未来造车新范式
大数据·汽车·制造
lupai6 小时前
手机在网状态查询 API 新手实战指南
大数据·python·智能手机
AI_Auto6 小时前
工业与AI融合应用 | 四个实战用例!机械装备行业AI+数字孪生+机器人落地全景
大数据·人工智能·机器人·制造