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

hive中datediff函数介绍

目录

  • 基本介绍
  • 实战

基本介绍

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

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

DATEDIFF(enddate, startdate)

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

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

SELECT DATEDIFF('2022-01-10', '2022-01-01');

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

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

实战

求用户的日活,2日留存,3日留存,7日留存指标
具体实现:

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

http://www.kler.cn/news/288549.html

相关文章:

  • 二百五十九、Java——采集Kafka数据,解析成一条条数据,写入另一Kafka中(一般JSON)
  • verilog 中的for循环用法
  • 深度学习(一)-感知机+神经网络+激活函数
  • Qt 实现部件或者窗口(QWidget)透明效果和其他特殊效果
  • 深度解析TCP与UDP协议
  • 每日一题——第七十九题
  • How to install mysql 5.7 with podman in Ubuntu 24.04
  • 三十二、初识Gin框架
  • chunqiude
  • JS设计模式之“幽灵工厂” - 抽象工厂模式
  • 【贪心算法】区间类算法题(整数替换、俄罗斯套娃、重构字符串等、C++)
  • OpenAI API: Can I remove the line break from the response with a parameter?
  • OpenCVSharp中基本绘图函数
  • Qt Dialog退出事件
  • Golang使用Quic-Go开源库实现Quic客户端和服务端
  • Unity接入飞行遥杆外设
  • 【BES2500x系列 -- RTX5操作系统】Battery模块 -- 创建电池检测定时器 --(十五)
  • 利用Spring Boot的@Transactional注解保障业务数据的一致性
  • 2024 【Delphi 12】苹果ios开发环境配置(五星保姆级)
  • UML(ER) manual book
  • 深入理解Java序列化:从入门到实践
  • c++ std::advance 使用简介
  • MySQL库表设计规范
  • IMU助力预测青少年脊柱侧弯
  • Apache DolphinScheduler大规模任务调度系统对大数据实时Flink任务支持
  • TikTok运营:IP地址如何影响TikTok的内容运营?
  • 内存管理篇-20 Linux虚拟内存管理
  • 亚信安全荣获“2024年网络安全优秀创新成果大赛”优胜奖
  • 缓存预热有哪些方案?
  • Java面试题真题·项目介绍部分总结