Hive查询函数

本文详细介绍了Hive中的各种查询函数,包括空字段赋值的NVL函数,CASE WHEN实现的switch case操作,行转列和列转行的转换方法,窗口函数的应用,以及Rank、日期相关函数的使用。内容涵盖从基本函数到复杂的数据处理技巧,是学习Hive查询的实用教程。
摘要由CSDN通过智能技术生成

0.函数查询

1.显示所有系统函数

show functions;

2.查询有关日期的函数

show functions like "*date*"

3.查看函数说明

desc function 'current_date';

一.空字段赋值

给值为NULL的数据赋值,它的格式是NVL( value,default_value)。它的功能是如果value为NULL,则NVL函数返回default_value的值,否则返回value的值,如果两个参数都为NULL ,则返回NULL。

将comm列为null的值赋值为-1 
select *,nvl(comm, -1) from emp;

二.CASE WHEN:类switch case

创建表,上传数据

create table emp_sex(
name string, 
dept_id string, 
sex string) 
row format delimited fields terminated by "\t";

load data local inpath '/opt/module/datas/emp_sex.txt' into table emp_sex;

1.先统计各部门有多人   

select dept_id,
       count(*) total,     
from emp_sex
group by dept_id;

 

2.求出不同部门男女各多少人

select dept_id,
       count(*) total,
       sum(case sex when '男' then 1 else 0 end) male,
       sum(case sex when '女' then 1 else 0 end) famale
from emp_sex
group by dept_id;

 三.行转列

使用函数:

CONCAT(string A/col, string B/col…):返回输入字符串连接后的结果,支持任意个输入字符串;

CONCAT_WS(separator, str1, str2,...):它是一个特殊形式的 CONCAT()。第一个参数剩余参数间的分隔符。分隔符可以是与剩余参数一样的字符串。如果分隔符是 NULL,返回值也将为 NULL。这个函数会跳过分隔符参数后的任何 NULL 和空字符串。分隔符将被加到被连接的字符串之间;

COLLECT_SET(col):函数只接受基本数据类型,它的主要作用是将某字段的值进行去重汇总,产生array类型字段。

COLLECT_LIST:不去重

需求:把星座和血型一样的人归类到一起

射手座,A            大海|凤姐

白羊座,A            孙悟空|猪八戒

白羊座,B            宋宋|苍老师

创建表上传数据

create table person_info(
name string, 
constellation string, 
blood_type string) 
row format delimited fields terminated by "\t";
load data local inpath "/opt/module/datas/constellation.txt" into table person_info;

1.先统计相同星座,及血型各有多少人使用函数“count()”

select constellation,blood_type,count(*)
from person_info
group by constellation,blood_type;

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值