HIVE分析函数

hive支持的分析函数:

总的概括:http://www.07net01.com/linux/HIVE_chuangkoujifenxihanshu_yingyongchangjing_532180_1373989446.html

********************************************************************************************************

Rank over的用法:http://www.cnblogs.com/mycoding/archive/2010/05/29/1747065.html

原始数据:

a           b           c

----------- ----------- ----

1           3           E

2           4           A

3           2           D

3           5           B

4           2           C

2           4           B

需求:以a,b进行分组,在每个组内以b进行排名。

select *,rank() over( partition by a,b order by b) from xxxx_tab
;

数据为:

a           b           c    rank

----------- ----------- ---- --------------------

1           3           E    1

2           4           A    1

2           4           B    1

3           2           D    1

3           5           B    2

4           2           C    1

分了5个组,第2行跟第3行是一个组,其他的每行是一个组。在第2行与第3行的组内以b排名,并列为1

***************************************************************************************************************************************

Row_Number() over的用法:http://www.cnblogs.com/fxgachiever/archive/2010/09/15/1826792.html

原始数据:

empid       deptid      salary

1           10          5500.00

2           10          4500.00

3           20          1900.00

4           20          4800.00

5           40          6500.00

6           40          14500.00

7           40          44500.00

8           50          6500.00

9           50          7500.00

需求:根据部门分组,显示每个部门的工资等级

SQL脚本:

SELECT *, Row_Number() OVER (partition by deptid ORDER BY salary desc) rank FROM employee

预期结果:

empid       deptid      salary                                  rank

----------- ----------- --------------------------------------- --------------------

1           10          5500.00                                 1

2           10          4500.00                                 2

4           20          4800.00                                 1

3           20          1900.00                                 2

7           40          44500.00                               1

6           40          14500.00                               2

5           40          6500.00                                 3

9           50          7500.00                                 1

8           50          6500.00                                 2

********************************************************************************************

窗口函数的用法:http://blog.csdn.net/cnham/article/details/6101199

select month,sum(tot_sales) month_sales, sum(sum(tot_sales)) over(order by month rows between unbounded preceding and unbounded following) total_sales  from orders group by month.

时间: 2024-10-12 11:47:18

HIVE分析函数的相关文章

HADOOP docker(六):hive简易使用指南

前言1.hive简介1.1 hive组件与相应功能:1.2 hive的表类型1.3 分区表1.3 分隔符1.4 hive的数据存储2.数据类型2.1 基本数据类型2.1 复杂数据类型2.3 NULL3.基本操作3.1 数据库操作3.2 表操作3.3 视图3.4 数据导入导出3.hsql3.1 hsql基本操作3.2 hive内置函数3.2 自定义函数3.3 注册函数4.hive权限管理4.1 权限简介4.2 权限分类4.3 授权管理5.hive优化 前言 本手册介绍了hive的基本知识及工作中要

Hive基础(1)---Hive是什么

1. Hive是什么 Hive是基于Hadoop的数据仓库解决方案.由于Hadoop本身在数据存储和计算方面有很好的可扩展性和高容错性,因此使用Hive构建的数据仓库也秉承了这些特性. 这是来自官方的解释. 简单来说,Hive就是在Hadoop上架了一层SQL接口,可以将SQL翻译成MapReduce去Hadoop上执行,这样就使得数据开发和分析人员很方便的使用SQL来完成海量数据的统计和分析,而不必使用编程语言开发MapReduce那么麻烦. 先上一张经典的Hive架构图: Hive架构图 如

hive-分析函数

bitmap -------------- 位图/位映射. 5 hive -------------- 分区表 udtf函数 wordcount lateral view //和udtf配合使用. order by //数据倾斜 sort by //reduce内排序 distribute by //分区 cluster by //sort by + distribute by hive -------------- --显式表头 hive>set hive.cli.print.header=t

hive内置函数详解(分析函数、窗口函数)

cli命令 show functions; desc function concat; desc function extended concat;查看某个函数怎么使用的例子 nvl函数coalesce(v1,v2,...)返回参数中第一个非空值,如果所有值都为null返回null: set.cli.print.header=true; winfunc 员工 工资 标识 id  money type 关系型运算符优先级高到低为:not and orand or 优先级 select id ,mo

我为什么学习hive窗口分析函数

1. 窗口函数 LEAD(column_name, n, default_value),用于统计窗口内往下第n行的值, LAG(column_name, n, default_value),用于统计窗口内往上第n行的值. FIRST_VALUE(column_name),分组窗口排序后,截止到当前行的第一个值: LAST_VALUE(column_name),分组窗口排序后,截止当前航的最后一个值: 2. OVER语句 SUM/COUNT/MIN/MAX/AVG(column_name) OVE

Hive 窗口分析函数

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

hive row_number等窗口分析函数

一.排序&去重分析 row_number() over(partititon by col1 order by col2) as rn 结果:1,2,3,4 rank() over(partititon by col1 order by col2) as rk 结果:1,2,2,4,5 dense_rank() over(partititon by col1 order by col2) as ds_rk 结果:1,2,2,3,4 select order_id, departure_date,

Hive常见内置函数及其使用

函数分类 HIVE CLI命令 显示当前会话有多少函数可用 SHOW FUNCTIONS; 显示函数的描述信息 DESC FUNCTION concat; 显示函数的扩展描述信息 DESC FUNCTION EXTENDED concat; 简单函数 函数的计算粒度为单条记录. 关系运算 数学运算 逻辑运算 数值计算 类型转换 日期函数 条件函数 字符串函数 统计函数 聚合函数 函数处理的数据粒度为多条记录. sum()-求和 count()-求数据量 avg()-求平均直 distinct-求

Hive分组取Top N

Hive在0.11.0版本开始加入了row_number.rank.dense_rank分析函数,可以查询分组排序后的top值 说明: row_number() over ([partition col1] [order by col2]) rank() over ([partition col1] [order by col2]) dense_rank() over ([partition col1] [order by col2]) 它们都是根据col1字段分组,然后对col2字段进行排序,