当前位置: 首页 > news >正文

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
http://www.jsqmd.com/news/1112819/

相关文章:

  • FastAPI:Python高性能API开发指南
  • Agent工程范式迁移:从确定性代码到非确定性大模型驱动的系统构建
  • 深度解析Whisky:macOS上Windows应用容器化的架构哲学
  • AI Coding 协作实践方案
  • 基础知识-互联网模型
  • 电气自动化专业:站在“绿牌”风口,解锁你的硬核职业版图
  • AI智能体能力评估新范式:从推箱子游戏看规划与推理的进化
  • 农贸市场快检室试剂采购:如何选择适配基层的快检耗材方案
  • JMeter消息队列压测全攻略:从方案设计到性能调优
  • MySQL数据库技术全解析:从SQL语法到实战应用的系统梳理
  • 如何从rand7生成rand5
  • 如何快速找回遗忘的压缩包密码:ArchivePasswordTestTool 完整指南
  • 创业者适合读EMBA吗?2026客观选型测评分析
  • 【无标题】小学期课设
  • 智能激活革命:KMS_VL_ALL_AIO如何彻底改变Windows和Office激活体验
  • utshell:新一代Rust实现的Bash兼容shell完全指南
  • 游戏开发教学方案
  • 成都专业的暖通商家有哪些
  • 基于STM32单片机WIFI云平台物联网 空气质量 烟雾温湿度PM2.5 1(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_
  • Hive 的内置函数
  • 武汉徐东火锅实测|理性避坑+科学选型测评指南
  • CIM电子沙盘与数字孪生技术服务商实力参考 | 城市与地产数字化展示选购指南
  • 【终极指南】Intel Wi-Fi 6 AX201 网卡感叹号、WiFi图标消失?3招彻底搞定!
  • 多维聚合实战:维度建模、层级升降与条件度量
  • 安装包逆向工程实战指南:从识别打包器到脚本分析
  • 免费解锁LOL所有皮肤:R3nzSkin国服换肤工具终极指南
  • MuleSoft+LLM企业级AI编排:可治理、可监控的AI落地实践
  • 居家饮食百搭冲调,庆葆堂菊粉固体饮料,日常纤维好搭档
  • 海外大模型差异化变现全解:5 条蓝海赛道完整落地实操体系
  • NestJS+Prisma+Docker全栈开发实战指南