Hive的分析函式

2021-08-16 23:59:27 字數 2296 閱讀 8765

記錄下hive的常用函式

hive的常用函式和平常我們使用的關係型資料庫基本都差不多,這裡只是記錄一下,方便後面回顧。

準備測試資料..

[hadoop@hadoop apache-hive-0.13.1-bin]$ cat emp.txt

7369 smith clerk 7902

1980-12-17

800.00

207499 allen salesman 7698

1981-2-20

1600.00

300.00

307521 ward salesman 7698

1981-2-22

1250.00

500.00

307566 jones manager 7839

1981-4-2

2975.00

207654 martin salesman 7698

1981-9-28

1250.00

1400.00

307698 blake manager 7839

1981-5-1

2850.00

307782 clark manager 7839

1981-6-9

2450.00

107788 scott analyst 7566

1987-4-19

3000.00

207839 king president 1981-11-17

5000.00

107844 turner salesman 7698

1981-9-8

1500.00

0.00

307876 adams clerk 7788

1987-5-23

1100.00

207900 james clerk 7698

1981-12-3

950.00

307902 ford analyst 7566

1981-12-3

3000.00

207934 miller clerk 7782

1982-1-23

1300.00

10建立表

create table emp(

empno int,

ename string,

job string,

mgr int,

hiredate string,

sal double,

comm double,

deptno int

)row format delimited fields terminated by

'\t';

load data local inpath '/opt/moduels/apache-hive-0.13.1-bin/emp.txt'

into table emp;

按照deptno進行降序

hive (default)> select * from emp order

by deptno desc;

按照所有部門進行分組,按照薪資進行降序排列,每個部門薪資最高的那個人顯示在最後一列

(partition by deptno order

by sal desc)這部分進行了分組,然後針對每個分組進行排序

如果不使用這種分析函式之類的去分析的話,排序和分組都是全域性的

select empno,ename,deptno,sal,max(sal) over (partition by deptno order

by sal desc) as max_as from emp;

參考sql

select empno,ename,deptno,sal,row_number() over (partition by deptno order

by sal desc) as rn from emp;

參考sql

select empno,ename,deptno,sal from (select empno,ename,deptno,sal,row_number() over (partition by deptno order

by sal desc) as rn from emp) tmp where rn <3;

分析函式hive計算均值 Hive 分析函式

應用場景 1 用於分割槽排序 2 top n 3 層次查詢 常用分析函式 分析函式 描述 rank 返回資料項在分割槽中的排名。排名值序列可能會有間隔 dense rank 返回資料項在分割槽中的排名。排名值序列是連續的,沒有間隔 percent rank 計算當前行的百分比排名 x 1 視窗分割槽...

hive的分析函式

1 rollup group by 的增強函式 實現根據部門號 工作職位求工資總和,根據部門求工資總和,查所有人的工資總和 通過group by 語句的增加來實現 select deptno,job,sum sal from emp group by rollup deptno,job 語法 gro...

hive分析函式

遇到以下問題如何解決?查詢客戶各個日期的歷史累積購買金額 查詢每個客戶第一次 首購 或前n次購買記錄 查詢每個客戶最後一次購買記錄 某活動推廣後,每天的累積資料 查詢客戶每天的歷史累積購買金額 hive 語法 select userid user id,pay datekey pay datekey...