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
相关推荐
jinxinyuuuus9 小时前
订阅指挥中心:数据可移植性、Schema设计与用户数据主权
数据仓库·人工智能
老徐电商数据笔记16 小时前
技术复盘第四篇:Kimball维度建模在电商场景的实战应用
大数据·数据仓库·技术面试
LF3_16 小时前
Centos7,单机搭建Hadoop3.3.6伪分布式集群
大数据·hadoop·伪分布式
程序员小羊!1 天前
数仓数据基线,在不借助平台下要怎么做?
大数据·数据仓库
Hello.Reader2 天前
Flink SQL 的 LOAD MODULE 深度实战——加载 Hive 模块、理解模块发现与常见坑
hive·sql·flink
老徐电商数据笔记2 天前
技术复盘第二篇:电商数据主题域划分企业级实践
大数据·数据库·数据仓库·零售·教育电商·技术面试
亲亲菱纱2 天前
hive数仓分层
数据仓库
泰克教育官方账号2 天前
泰涨知识 | Hadoop的IO操作——压缩/解压缩
大数据·hadoop·分布式
老徐电商数据笔记2 天前
技术复盘第三篇:百果园新零售核心业务流程主题域划分详解
大数据·数据仓库·零售·技术面试
qq_381454992 天前
大数据时代的分布式基石Hadoop
hadoop