一些常用查询函数
1,空字段赋值
2,case when
3,窗口函数
4,Rank
5,自定义函数(UDF,UDAF,UDTF)
1,空字段赋值
NVL:给值为 NULL 的数据赋值,它的格式是 NVL( string1, replace_with)。它的功能是 如果 string1 为 NULL,则 NVL 函数返回 replace_with 的值,否则返回 string1 的值,如果两 个参数都为 NULL ,则返回 NULL。
查询:如果员工的 comm 为 NULL,则用-1 代替
hive (default)> select nvl(comm,-1) from emp;
2,case when
select dept_id, sum(case sex when '男' then 1 else 0 end) male_count,
sum(case sex when '女' then 1 else 0 end) female_count from emp_sex
group by dept_id;
3,窗口函数
1.相关函数说明 OVER():指定分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变而 变化
CURRENT ROW:当前行
n PRECEDING:往前 n 行数据
n FOLLOWING:往后 n 行数据
UNBOUNDED:起点,UNBOUNDED PRECEDING 表示从前面的起点, UNBOUNDED FOLLOWING 表示到后面的终点
LAG(col,n):往前第 n 行数据
LEAD(col,n):往后第 n 行数据
NTILE(n):把有序分区中的行分发到指定数据的组中,各个组有编号,编号从 1 开始, 对于每一行,NTILE 返回此行所属的组的编号。注意:n 必须为 int 类型
。
2.数据准备:name,orderdate,cost
derdate,cost jack,2017-01-01,10
tony,2017-01-02,15
jack,2017-02-03,23
tony,2017-01-04,29
jack,2017-01-05,46
jack