数据仓库——collect_set函数、NVL函数、日期处理

HIve汇总 hive 阅读详情

目录

1.collect_set函数

2.nvl函数

3.日期处理函数


1.collect_set函数

 数据:

idorder-typeorder-number
1aa5
2bb2
1bb1
2aa3
1aa2

 

需求:对用户的订单进行分析,将不同订单类型分别多少单展示出来,每个用户一行

实现:

1.使用concat()函数将order_type和order_number连接起来

concat(order_type,'(',order_number,')')

2.使用concat_ws()和collect_set()进行合并行

将上面列表中一个user可能会占用多行转换为每个user占一行的目标表格式,实际是“列转行”

select user,concat_ws(',',collect_set(concat(order_type,'(',order_number,')')))  order from table group by user

order是别名

作用:

  • 去重,对group by后面的id去重
  • 对group by以后属于同一id的形成一个集合,结合concat_ws对集合中元素使用,进行分隔形成字符串

2.nvl函数

NVL(表达式1,表达式2)

nvl是一个空值转换函数。

如果表达式1为空值,NVL返回值为表达式2的值,否则返回表达式1的值。 该函数的目的是把一个空值(null)转换成一个实际的值。其表达式的值可以是数字型、字符型和日期型。但是表达式1和表达式2的数据类型必须为同一个类型。

应用场景:

  •   可以设置字段如果为空的默认值。例如如果一个人在注册app时不填写用户名称时默认取你注册用的微信名称一样。
  •   也可以用于外关联(join等)时两个表中有重复字段但是值不一样时,可以设置该字段取值的优先级别。例如两个事件表,一个是紧急事件表,另一个是基本事件表,两个表中都有一个字段名为事件紧急程度,这里我们就可以先将两个表进行关联,在设置事件紧急程度时首先取紧急事件表中该字段的内容,如果为空再取基本事件表中该字段的内容。

3.日期处理函数

  • data_format函数(根据格式整理日期)

select data_format('2020-11-6','yyyy-mm');

  • data_add函数(加减日期)

前一天: select date_add('2020-11-6',-1);

后一天: select date_add('2020-11-6',1);

  • next_day函数

(1)取当前天的下一个周一

select next_day('2020-11-06','MO');

(2)取当前周的周一

select date_add(next_day('2020-11-06','MO'),-7);

  • last_day函数(求当月的最后一天日期)

select last_day('2020-10-30');

 

 

 

 

HiveSQL题——collect_set()/collect_list()聚合函数 阅读详情

相关推荐

Hive中的CONCAT、CONCAT_WS与COLLECT_SET函数

concat用于连接字符串。concat_ws用于按照指定的分隔符连接字符串。与group by和concat_ws一起使用可以实现"列转行。

weixin_44852067的博客 4605

【hive】列转行—collect_set()/collect_list()/concat_ws()函数的使用场景

【hive】列转行—collect_set()/collect_list()/concat_ws()函数的使用场景

sodaloveer的博客 2万+

HiveQL学习笔记(二):Hive基础语法与常用函数

本系列是本人对Hive的学习进行一个整理,主要包括以下内容: 1. 2. 3. 4. 接下来对第二个内容进行介绍。 Hive是基于Hadoop的数据仓库 HiveSQL与传统SQL对比: 基础语法 1.SELECT…A…FROM…B…WHERE…C… 这里放上SQL语法执行的先后顺序: 7:SELECT 查询列表 1:FROM 表 2:连接类型 JOIN 表2 3:ON 连接条件 4:WHERE 筛选条件 5:GROUP BY 分组 6:HAVING 分组后

AvenueCyy的博客 936

HIve 中 collect_list和collect_set 函数的使用总结

Hive中collect相关的函数有collect_list和collect_set。 它们都是将分组中的某列转为一个数组返回,collect_list函数不去重而collect_set函数会去重。 例如:有如下一个数据表 进行行转列 很明显我们能看看到,张三做了两次B类项目 1、使用 collect_list函数 select user , collect_list( project ) from tb group by user ; 得到的结果将是 张三的两次B类项目,不会进行去重 2

qq_38603049的博客 3万+

Hive SQL数据形态转换:列转行与行转列核心操作详解

在数据仓库与大数据处理领域,数据形态转换是数据处理的核心基础操作之一,它涉及将数据在行与列之间进行灵活重组,以满足不同分析场景的需求。其基本原理是通过特定的SQL函数和语法结构,改变数据的存储和呈现维度,从而实现数据结构的重塑。这项技术的核心价值在于能够高效处理非结构化或半结构化数据,将原始数据转换为适合分析、报表和机器学习的规整格式。在数据清洗、用户行为分析、标签体系构建等应用场景中尤为关键。具体到Hive SQL技术栈,列转行操作主要依赖explode函数与lateral view子句的配合,用于展开数

weixin_30372371的博客 320

数仓实战05:数仓搭建-DWS层

1.业务术语 1)用户 用户以设备为判断标准,在移动统计中,每个独立设备认为是一个独立用户。Android 系统根据 IMEI 号,IOS 系统根据 OpenUDID 来标识一个独立用户,每部手机一个用户。 2)新增用户 首次联网使用应用的用户。如果一个用户首次打开某 APP,那这个用户定义为新增用 户;卸载再安装的设备,不会被算作一次新增。新增用户包括日新增用户、周新增用户、月新增用户。 3)活跃用户 打开应用的用户即为活跃用户,不考虑用户的使用情况。每天一台设备打开多次会被计为一个活跃用户。 4)周(月

qq_28286027的博客 876

hive collect_set函数

1)创建原数据表 hive (gmall)> drop table if exists stud; create table stud (name string, area string, course string, score int); 2)向原数据表中插入数据 hive (gmall)> insert into table stud values('zhang3','bj','math',88); insert into table stud values('li4','b

qq_39674417的博客 724

3GPP协议解读_物理层系列(一)_物理层协议怎么看?

5G NR相关协议一般都在38系列,点进去以后可以看到,38.2xx系列为物理层相关协议,为了掌握物理层相关知识,应该怎么看协议呢?我建议从38.201读起,对38.2xx系列协议有一个整体的把握。

JCMLSY的博客 1329

Hive 内置函数详解

本文系统介绍了Apache Hive的核心内置函数,涵盖字符串处理、日期计算、数值运算、类型转换等基础函数,重点解析了窗口函数(排名/聚合/偏移/切片)、JSON处理、多维分析和侧视图等高级功能。通过实例代码演示了row_number、lag/lead、explode+LATERAL VIEW等高频使用场景,对比了nvl与COALESCE等函数的区别。文章特别强调窗口函数在面试中的核心地位,以及concat_ws+collect_set实现行转列等实用技巧,为大数据开发者提供了全面的Hive函数参考指南。

SDDR1024的博客 747

ros1 Noetic下运行cartographer算法进行2d建图

最近的工作重点放在机器狗的二次开发上,项目的需求是要升级机器狗的slam算法和导航避障算法,slam拟采用激光与视觉融合算法,激光slam就使用最为流行和实用的cartoghper算法。在这过程中遇到好多坑,希望看到这篇博客的人能少走弯路吧。我用的仿真机器人是wpr_simiulation。首先复制一份demo_revo_lds.launch文件和revo_lds.lua文件,修改成下面的样子。my_test.lua文件,base_link就是机器人的坐标系。下载与安装的博客有很多,我推荐。

sun5739的博客 1547

SpringBoot3.X及SpringAi和jdk17以上版本集成MCP协议供大模型调用sse协议

MCP(Model Context Protocol,模型上下文协议)是由 Anthropic 推出的开源协议,旨在实现大型语言模型(LLM)与外部数据源和工具的无缝集成,用来在大模型和数据源之间建立安全双向的链接。目标是成为 AI 领域的“HTTP 协议”,推动 LLM 应用的标准化和去中心化。本文主要讲解SpringBoot3.X版本和jdk17版本如何集成MCP协议 后续还有一个SpringBoot2.7和jdk1.8通过solon来实现@Service。

weixin_47247523的博客 788

hive常用函数整理

hql常用函数,持续更新中...

m0_57126939的博客 1761

多模态融合相关概念

多模态图像融合

weixin_43921949的博客 7357

Hive 常用内置函数

本文整理了Hive常用内置函数,包含字符串、日期、数值、条件判断、窗口函数等8大类使用场景。字符串函数重点介绍了concat_ws、split等数据清洗常用工具;日期函数推荐使用year/month等专用函数;窗口函数详细解析了排名、聚合、偏移等核心用法;还涵盖了JSON解析、多维聚合、列转行等实用技巧。每个函数都配有可执行的SQL示例,适合数据开发人员日常参考和面试复习使用,能有效提升Hive数据处理效率。

NIko________的博客 237

【Cadence】 ADS Dynamic Link使用教程

在Cadence617上使用ADS Dynamic Link

乾巽的博客 6075

从零开始,用Cadence Virtuoso手把手仿真一个1.5V LDO(附完整电路与仿真脚本)

本文详细介绍了如何使用Cadence Virtuoso从零开始仿真一个1.5V LDO,包括环境准备、电路导入、Testbench构建、核心仿真类型分析以及高级调试技巧。通过完整的电路与仿真脚本,帮助读者掌握LDO设计与仿真的关键技术,提升电路设计能力。

weixin_31309419的博客 445

Hive 内置函数实战:从基础查询到高级分析的完整指南

本文全面解析Hive内置函数的使用技巧,从基础查询到高级分析,涵盖数据清洗、转换、多维分析和窗口函数等核心功能。通过电商分析实战案例,展示如何利用Hive函数解决实际业务问题,提升数据处理效率。特别适合数据分析师和开发人员学习Hive数据仓库技术。

weixin_30635053的博客 519

Codex 100个真实案例 - 全系列总结与Codex最佳实践全解析

历经100个案例的淬炼,我们终于来到了终点!本篇是整个系列的压轴之作——全面回顾100个案例的分类统计、提炼Codex使用的核心技巧和最佳实践、总结Prompt工程的精华要点、剖析常见错误及解决方案、展望AI编程的未来趋势,并为不同水平的读者规划学习路径。这不仅是一篇总结,更是一本Codex实战手册!

yueyeguzhuo的专栏 135

Hive函数练习

NVL(value,default_value) 如果value为null,则nvl函数返回default_value的值,否则返回value的值,如果两个参数都为null话返回null case when 求不同部门男女各多少人 数据悟空 A 男 大海 A 男 宋宋 B 男 凤姐 A 女 婷姐 B 女 婷婷 B 女 首先创建表create table emp( name string, id string, sex string ) row format delimited fields .

sofency'Blog 291

FlashBootloader01-基于UDS的Flash Bootloader【架构篇】

文章目录1 Flash Bootloader的依赖项2 Flash Bootloader中使用的UDS的主要功能3 Flash Bootloader更新固件3.1 初始化MCU3.2 刷写流程 1 Flash Bootloader的依赖项 通常Flash Bootloader由以下四方面组成: UDS协议 上位机「编写Bootloader Sequence」 通信驱动(如CAN ) Flash Driver 2 Flash Bootloader中使用的UDS的主要功能 1. 10 02服务 客户端

3591

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

mysql regr intercept_Atitit 数据库 标准库  sdk 函数库 编程语言 mysql oracle  attilax总结...

Atitit 数据库 标准库sdk函数库 编程语言mysql oracle attilax总结1.1.常见的编程语言以及数据库 sql内部函数库标准化库一般有以下api00001.控制流程函数00002.2字符串函数00003.3数学函数44个00001.4日期时间函数00002.5搜索函数00003.6加密函数00001.7信息函数00002.8其他函数00003.9聚合函数类型转换函数1.2...

weixin_28965739的博客 154

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

hive中行转列

hive数据统计

yuanyuan___的博客 3919

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Hive 数据仓库技术全解(二):HQL高级函数(窗口函数、UDF/UDAF/UDTF、炸裂函数与行列转换,分区/分桶)

本文是《Hive数据仓库技术全解》系列第二篇,重点讲解HiveQL高级特性。主要内容包括:1)字符串、日期和流程控制等内置函数;2)高级聚合与炸裂函数(collect_list/set、explode等),通过电影分类统计案例展示实际应用;3)窗口函数详解,涵盖语法结构、缺省规则和常用函数(聚合计算、位移函数、排名函数等),并给出累计消费和下单间隔的实战案例;4)行列转换技术;5)分区与分桶设计策略。

lijingang2005的博客 280

Hive详解——基本操作归纳

文章目录一、Hive基本概念1. 什么是 Hive1)hive 简介2)Hive 本质:将 HQL 转化成 MapReduce 程序2. Hive 的优缺点1)优点2)缺点3. Hive 架构原理4. Hive 和数据库比较1)查询语言2)数据更新3)执行延迟4)数据规模二、Hive安装1. Hive 安装地址2. 安装MySQL3. Hive 安装部署4. Hive 元数据配置到 MySQL5. 启动并使用 Hive1)启动 Hive2)使用 Hive3)Hadoop中查看文件6. 使用元数据服务的方式访

一名小码农的博客 3570
上一篇: Flume知识点详解总结
下一篇: 需记住的用户指标分析
Poolweet_
博客等级 码龄7年 21粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值