news 2026/7/3 3:16:02

Hive 内置函数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Hive 内置函数

字符串函数

-- 字符串长度 select length('hello') -- 替换 select replace('hello','l','x') -- 截取 select substr('hello',2,3) -- 拼接 select concat('hello','hello','hello') select 'hello'||'hello'||'hello' select concat(id,name)from hero -- 拼接时添加分隔符, 分隔符写在第一个参数 select concat_ws(',',id,name,id) from hero --collect_set 聚合后去重 | collect_list 聚合后不去重 select province_id, collect_set(city_name) s,collect_list(city_name) l from city group by province_id -- 去除空格 select TRIM(' dsdsa ') -- 转换大写 a A select upper('xxx')

日期函数

-- 提取日期 select substr(CURRENT_TIMESTAMP,1,4) select year(CURRENT_TIMESTAMP) select substr(CURRENT_TIMESTAMP,6,2) select month(CURRENT_TIMESTAMP) select day(CURRENT_TIMESTAMP) select hour(CURRENT_TIMESTAMP) -- bigint类型 的时间戳的转换 select from_unixtime(1782972840,'yyyy-MM-dd HH:mm:ss') -- 日期间隔天数 select datediff('2020-10-01','2026-07-02') select datediff(CURRENT_DATE,'2020-10-01') -- 间隔月数 select months_between(CURRENT_DATE,'2020-10-01') -- 前后N天 select date_sub(CURRENT_DATE,1) select date_add(CURRENT_DATE,1)

数值型函数

MOD(被除数, 除数) --取余函数(取模) FLOOR(数值) --向下取整 CEIL(数值) CEILING(数值) --向上取整(两个函数完全等价) ROUND(数值 [,保留小数位数]) --四舍五入

转换函数

NVL(表达式1, 替换值) --空值替换函数 COALESCE(值1, 值2, 值3, ..., 默认兜底值) --多参数空值依次匹配(升级版 NVL) IF --判断语句 CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 结果2 WHEN 条件3 THEN 结果3 ELSE 默认结果 END --多分支判断 CAST(原始值 AS 目标数据类型) --类型转换函数

窗口函数

----------------- 窗口函数 函数()over(partition by xxx order by xxx rows between xxx and yyy) -- 排名开窗 -- 通常用于 计算 Top-N row_number() 1234 rank() 1134 DENSE_RANK() 1123 -- rows between xxx and yyy preceding : 向前找 following : 向后找 CURRENT row : 当前行(计算哪一行,该行就是当前行) unbounded : 一直到窗口的边界 rows between unbounded preceding and CURRENT row -- 聚合开窗 -- 累计计算(累计求和, 累计平均) SUM avg max MIN count -- 偏移开窗: 将行和行的关系 转换成 列和列的关系 -- 计算 同比 环比 , 连续性问题 lag --取上一行数据 LAG(字段名 [,偏移行数] [,默认值]) OVER(PARTITION BY 分组字段 ORDER BY 排序字段) lead --取下一行数据 LEAD(字段名 [,偏移行数] [,默认值]) OVER(PARTITION BY 分组字段 ORDER BY 排序字段) -- 切片开窗 ntile -- 一般用于 百分比计算 ntile(数字) NTILE(切块数量) OVER(PARTITION BY 分组列 ORDER BY 排序列) SELECT a.*, ntile(4)over(PARTITION BY deptno ORDER BY sal desc) FROM emp a

其他

-- hive 处理json 字符串 {"systemtype": "android", "education": "doctor", "marriage_status": "1", "phonebrand": "VIVO"} -- get_json_object select a.*, get_json_object(extra1, '$.phonebrand')phone from zhiyun.user_info a --------------------------------- 多维分析 ----------------------------------- -- 多维分析 grouping sets | rollup | cube select sex,city,count(0) c from zhiyun.user_info a group by sex,city GROUPING sets(sex,city) select sex,city,count(0) c from zhiyun.user_info a group by sex,city with ROLLUP select sex,city,count(0) c from zhiyun.user_info a group by sex,city with cube --------------------------------- 侧视图函数 ----------------------------------- -- 列转行(侧视图函数) select * from zhiyun.user_goods_category -- 统计 每个品类的购买人数 udf: 一进一出 udaf: 多进一出 udtf: 一进多出 --1. explode 函数 -- select split(category_detail,',') from zhiyun.user_goods_category select explode(split(category_detail,',')) from zhiyun.user_goods_category --2. 侧视图函数 select a.user_name, b.pl from zhiyun.user_goods_category a LATERAL view explode(split(category_detail,',')) b as pl
--每个部门,每个工种的人数 select null as job,deptno,count(1)人数 from emp group by deptno union all select job,null as deptno,count(1)人数 from emp group by job --多维分析 select deptno,job,count(1)人数 from emp group by grouping sets(deptno,job) select deptno,job,count(1)人数 from emp group by rollup(deptno,job) rollup(a,b,c) 全部行 a AB abc --立方分析 select deptno,job,count(1)人数 from emp group by cube(deptno,job)

递归查询

--查询smith的上级 SELECT ename,level from emp start with enma='smith' connect by empno =prior mgr --查询jones的下属 SELECT ename,level sys_connect_by_path(ename,'-->') from emp start with enma='jones' connect by prior empno = mgr
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/3 3:13:00

《算法设计与分析》全套PPT课件(西交)

《算法设计与分析》全套课件(西交) 课件内容: 第1章鄭法引论.pdf 第2章递归与分治策略.pdf 第3章动态规划-1.pdf 第4章贪心算法.pdf 第5章回溯法-1.pdf 第6章分支限界法-1.pdf 第7章概率算法.pdf 第8章NP完全性理论.pdf 第9章近似算法.pdf 第…

作者头像 李华
网站建设 2026/7/3 3:05:55

Web安全实战指南:从SQL注入到CSRF的攻防原理与代码级防御

1. 项目概述:为什么Web安全是每个开发者的必修课最近几年,我处理过不少线上应急响应,从数据库被拖到用户信息泄露,再到服务器被当成“肉鸡”去攻击别人,这些事故的根源,十有八九都出在Web应用的安全漏洞上。…

作者头像 李华
网站建设 2026/7/3 2:54:31

Gemini API多模态AI开发实战指南

1. Gemini API 快速入门指南如果你正在寻找一个强大的AI开发工具,Gemini API绝对值得关注。作为Google推出的新一代AI开发接口,它让开发者能够轻松调用包括Gemini、Veo、Nano Banana等在内的多种先进模型。我最近在实际项目中使用了这个API,发…

作者头像 李华
网站建设 2026/7/3 2:52:13

Makefile基础使用

Makefile是一种用于管理和自动化软件编译过程的文本文件。它通常包含了一系列规则,这些规则描述了如何根据源代码文件生成可执行文件或者其他目标文件。Makefile的核心概念是规则和依赖关系,规则定义了如何生成一个或多个目标文件,而依赖关系…

作者头像 李华
网站建设 2026/7/3 2:51:27

用“动态 RAG”实现终身学习 Agent

上一篇我们把 Agent 记忆拆成了工作记忆、短期记忆和长期记忆。 继续往下走,问题会变得更锋利: 如果长期记忆不只是被读取,还会被 Agent 修改,系统还能不能可信? 企业工单 Agent 很快会遇到这种需求。用户反复问同一…

作者头像 李华