`

hive分析函数

 
阅读更多

遇到以下问题如何解决?

  1. 查询客户各个日期的历史累积购买金额
  2. 查询每个客户第一次(首购)或前N次购买记录
  3. 查询每个客户最后一次购买记录
  4. 某活动推广后,每天的累积数据

查询客户每天的历史累积购买金额
历史累积

历史累积

hive 语法:

SELECT
  userid user_id,
  pay_datekey pay_datekey,
  pay_amount pay_amount,
  SUM(pay_amount) OVER (PARTITION BY userid ORDER BY pay_datekey  ROWS BETWEENUNBOUNDED PRECEDING AND CURRENT ROW ) accumulate_pay_amount
FROM 
  order_table

 

窗口分析函数

OVER(PARTITION BY COLUMN ROWS BETWEEN ..)

ROWS ((CURRENT ROW) | (UNBOUNDED | [num]) PRECEDING) AND (UNBOUNDED | [num]) FOLLOWING

  1. PRECEDING:往前
  2. FOLLOWING:往后
  3. CURRENT ROW:当前行
  4. UNBOUNDED:起点,UNBOUNDED PRECEDING 表示从前面的起点, UNBOUNDED

FOLLOWING:表示到后面的终点

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

SUM(pay_amount) OVER (PARTITION BY userid ORDER BY pay_datekey ROWS BETWEEN 2 PRECEDING AND 0 FOLLOWING)

聚合函数

除了可以计算到当前行的sum聚合函数之外,还支持以下 标准聚合函数

  • COUNT
  • MIN
  • MAX
  • AVG

比如计算:截止某天历史平均购买交易额、最小购买金额等。

序列函数

为每一行加一个序号

  1. row_number()
  2. rank()
  3. dense_rank()
  4. percent_rank() 分组内当前行的RANK值-1/分组内总行数-1
  5. ntile(n) 将数据集分成 n片,返回分片号
  6. cume_dist 小于等于当前值的行数和分组内总行数的比值

效果

序列函数序列函数

SELECT 
    user_id,
    pay_datekey,
    pay_amount,
    ROW_NUMBER() OVER (PARTITION BY userid ORDER BY pay_datekey ASC)
    row_number,
    RANK() OVER (PARTITION BY userid ORDER BY pay_datekey ASC) rank, DENSE_RANK() OVER (PARTITION BY userid ORDER BY pay_datekey ASC) dense_rank, PERCENT_RANK() OVER (PARTITION BY userid ORDER BY pay_datekey ASC)
    percent_rank,
    NTILE(2) OVER (PARTITION BY userid ORDER BY pay_datekey ASC) ntile
FROM 
    order_detail

 

 

LAG

LAG(col,n,DEFAULT) 用于统计窗口内往上第n行值 第一个参数为列名,第二个参数为往上第n行(可选,默认为1),第三个参数为默认值
(当往上第n行为NULL时候,取默认值,如不指定,则为NULL)

LEAD

与LAG相反,LEAD(col,n,DEFAULT) 用于统计窗口内往下第n行值. 第一个参数为列名,第二个参数为往下第n行(可选,默认为1),第三个参数为默认值
(当往下第n行为NULL时候,取默认值,如不指定,则为NULL

FIRST_VALUE

取分组内排序后,第一个值.应用场景,如求第一次购买日期。

LAST_VALUE

取分组内排序后,最后一个值.应用场景,如求第一次购买日期

分享到:
评论

相关推荐

    hive高级分析函数与优化.rar_hive_hive 函数优化_hive 分析 大数据_hive高级优化_oldwlc

    1. **Hive分析函数**: Hive提供了丰富的内置函数,包括聚合函数(如SUM、AVG、COUNT等)、转换函数(如TO_DATE、TRIM等)和窗口函数(如LEAD、LAG、RANK等)。高级分析函数如统计学习函数(如KMEANS、NAIVE_BAYES...

    hive窗口函数.docx

    Hive 窗口函数是 Hive 中的一种强大的分析函数,它可以对数据进行分类、排序、聚合和排名等操作。下面将详细介绍 Hive 窗口函数的语法结构、分类、应用场景和实践练习。 窗口函数语法结构 窗口函数的基本语法结构...

    Spark不能使用hive自定义函数.doc

    ### Spark与Hive自定义函数兼容性问题解析 在大数据处理领域,Apache Spark 和 Apache Hive 都是非常重要的工具。Spark 是一种快速通用的大规模数据处理系统,而Hive 则是一种数据仓库工具,主要用于对存储在 ...

    base64加密解密的hive udf函数

    在大数据处理领域,Hive作为一个基于Hadoop的数据仓库工具,被广泛用于数据查询和分析。在某些场景下,我们可能需要对数据进行加密或者解密操作,以保护敏感信息或实现特定的数据处理需求。Base64是一种常见的编码...

    HIVE函数详解大全

    Hive函数的丰富性使得它能处理各种复杂的数据分析任务,无论是简单的统计计算还是复杂的业务逻辑,都能通过HQL(Hive Query Language)来实现。在大数据处理中,熟练掌握Hive函数对于提升数据分析效率至关重要。在...

    hive窗口函数

    窗口函数为Hive用户提供了强大的数据分析能力,特别是在处理时间序列数据和进行复杂的统计分析时。通过对SUM、AVG、MIN、MAX等基础函数的学习和实践,我们可以更加灵活地进行数据探索和挖掘,为业务决策提供有力支持...

    Hive常用函数大全.pdf

    ### Hive常用函数详解 #### 一、关系运算 在Hive中,关系运算是非常基础且重要的部分,它包括但不限于等值比较、不等值比较、大小比较等。这些操作对于进行数据筛选、条件判断等都非常关键。 ##### 1. 等值比较 ...

    Hive函数及语法说明

    这些函数可以在 Hive 的查询语句中使用,以便对数据进行处理和分析。 #### 数值函数 Hive 提供了多种数值函数,用于执行数学运算,例如: * round(double a):返回 double 类型的四舍五入的 BIGINT 值。 * round...

    hive函数参考手册,包含常用的hive内置函数.doc

    Hive 函数是 Hive 中的内置函数,用于对数据进行处理和分析。这些函数可以分为四大类:关系运算符、算术运算符、逻辑运算符和复杂类型函数。 关系运算符用于比较两个值是否相等、不等、或是否包含于某个范围内等。...

    Hive函数大全.pdf

    在大数据处理领域,Hive作为一个基于Hadoop的数据仓库工具,为开发者提供了丰富的内置函数,用于数据查询和分析。本篇文章将详细介绍Hive中的一些主要函数,包括数学函数、类型转换函数、条件函数、字符函数、聚合...

    Hive2.0函数大全(高清中文版)

    通过上述介绍,我们可以看出Hive2.0提供了一系列强大的内置函数,涵盖了数学运算、数据类型转换、日期处理等多个方面,极大地提升了数据分析和处理的能力。这些函数的应用可以简化SQL查询语句,提高开发效率和代码...

    02.hive内置函数--窗口分析函数--row_number_over.mp4

    02.hive内置函数--窗口分析函数--row_number_over.mp4

    Hive内置函数速查表.pdf

    对于开发者来说,Hive内置函数是其数据分析能力的有力工具,通过这些函数可以方便地对数据进行处理和计算。 在Hive中,关系运算符可用于比较操作,例如等值比较、不等值比较、小于、小于等于、大于、大于等于等。...

    hive常用函数

    在使用Hive进行数据分析时,掌握这些函数是十分重要的。通过上述函数的应用,可以有效地进行数据清洗、数据转换和数据聚合,从而为数据分析和决策提供强有力的支持。熟练使用Hive函数,不仅可以提高数据处理的效率,...

    hive常用函数参数手册

    在大数据处理领域,Hive作为一个广泛使用的数据仓库工具,提供了丰富的内置函数来支持数据的处理与分析。本文档旨在介绍Hive中的常用函数及其用法,帮助用户更好地理解和应用这些函数。需要注意的是,由于Hive的不同版本...

    hive函数大全.doc

    Hive 函数大全 Hive 函数大全是 Hive 中各种常用函数的集合,涵盖了日期函数、集合统计函数、字符串函数、条件函数、复合类型构建操作等多个方面。...这些函数可以帮助用户更好地处理和分析数据。

    hive的自定义函数

    在大数据处理领域,Apache Hive 是一个广泛使用的数据仓库工具,它提供了一种SQL-like查询语言——HiveQL,使用户能够轻松地对存储在Hadoop文件系统中的大规模数据集进行数据汇总、特殊查询和其他统计分析。...

    hive函数大全

    很详细的hive内置函数大全,适用于工作、学习;常做hive统计分析的你,值得拥有. 很详细的hive内置函数大全,适用于工作、学习;常做hive统计分析的你,值得拥有.

    hive数仓、hive SQL 、 hive自定义函数 、hive参数深入浅出

    Hive是大数据处理领域中的一个关键组件,它作为基于Hadoop的数据仓库工具,为企业提供了对大规模数据集的SQL-like查询和分析能力。本教程将深入探讨Hive数仓的架构与设计,Hive SQL的基本语法及高级特性,以及如何...

Global site tag (gtag.js) - Google Analytics