hive中datediff函数介绍

目录

基本介绍

在 Apache Hive 中,datediff 函数用于计算两个日期之间的天数差异。它接受两个日期作为参数,并返回这两个日期之间的天数差。

以下是 datediff 函数的一般语法:

sql 复制代码
DATEDIFF(enddate, startdate)

其中 enddate 是结束日期,startdate 是起始日期。函数将返回 enddate 减去 startdate 后的天数差。

例如,如果我们想要计算 2022 年 1 月 1 日和 2022 年 1 月 10 日之间的天数差,我们可以使用以下 Hive 查询:

sql 复制代码
SELECT DATEDIFF('2022-01-10', '2022-01-01');

这将返回 9,表示这两个日期之间相隔 9 天。

总之,datediff 函数在 Hive 中是用于计算日期之间天数差异的非常有用的函数。

实战

求用户的日活,2日留存,3日留存,7日留存指标

具体实现:

sql 复制代码
insert overwrite table imei_retain_table_test pattition (day)
select 
	imei 
	,max(is_valid_act) as is_valid_act
	,max(retain_day_2_act) as retain_day_2_act
	,max(retain_day_3_act) as retain_day_3_act
	,max(retain_day_7_act) as retain_day_7_act
	,day
from  
(
selet 
	imei 
	,max(is_valid_act) as is_valid_act
	,max(if(datediff(t2.day - t1.day)=1 and t1.is_valid_act=1 and t2.is_valid_act =1,1,0) as retain_day_2_act
	,max(if(datediff(t2.day - t1.day)=2 and t1.is_valid_act=1 and t2.is_valid_act =1,1,0) as retain_day_3_act
	,max(if(datediff(t2.day - t1.day)=6 and t1.is_valid_act=1 and t2.is_valid_act =1,1,0) as retain_day_7_act
	,day
from  
 (select  
	day
	,imei 
	,max(is_valid_act) as is_valid_act
 from imei_vaild_table_test
 where day in ('${etl_date}','${etl_date_2}','${etl_date_3}','${etl_date_7}')
 group by 
 day ,imei
 ) t1 
 left join 
  (select  
	day
	,imei 
	,max(is_valid_act) as is_valid_act
 from imei_vaild_table_test
 where day in ('${etl_date}')
 group by day,imei
 ) t2 
 group by 	day,imei 
 
 
 union all 
 
 select  
	imei 
	,is_valid_act
	,retain_day_2_act
	,retain_day_3_act
	,retain_day_7_act
	,day 
 from  imei_retain_table_test
 where day in ('${etl_date}','${etl_date_2}','${etl_date_3}','${etl_date_7}')
 ) tt
group by 
	imei 
	,day
相关推荐
tsyjjOvO1 天前
SpringMVC 从入门到精通
数据仓库·hive·hadoop
Francek Chen1 天前
【大数据存储与管理】分布式数据库HBase:05 HBase运行机制
大数据·数据库·hadoop·分布式·hdfs·hbase
zzzzzwbetter1 天前
Hadoop完全分布式部署-Master的NameNode以及Slaver2的DataNode未启动
大数据·hadoop·分布式
weixin_449310841 天前
ETL转换和数据写入小满OKKICRM的技术细节
数据仓库·php·etl
IvanCodes1 天前
Hive IDE连接及UDF实战
ide·hive·hadoop
yumgpkpm1 天前
华为昇腾910B 开源软件GPUStack的介绍(Cloudera CDH、CDP)
人工智能·hadoop·elasticsearch·flink·kafka·企业微信·big data
lifewange2 天前
Hive数据库
数据库·hive·hadoop
五月天的尾巴3 天前
hive数据库模糊查询表名
hive·查询表名
蓝魔Y3 天前
hive—1.1、执行优化
hive
快乐非自愿3 天前
OpenClaw 生态适配:Hadoop/Hive 技能现状与企业级集成方案
大数据·hive·hadoop·分布式·openclaw