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

Hive使用max case when over partition by 实现单个窗口取两个窗口的值(单个开窗函数,实际取两个窗口)

一、Hive开窗函数根据特定条件取上一条最接近时间的数据(单个开窗函数,实际取两个窗口)

针对于就诊业务,一次就诊,多个处方,处方结算时间可能不一致,然后会有多个AI助手推荐用药,会多有多条推荐日志,且推荐日志时间和处方结算时间不一致,日志仅能关联到就诊级别的粒度,需要找到处方结算前一条的推荐记录,因此针对一次就诊开窗函数,只能开一个时间窗口,但是有可能有两个处方,所以需要找到两个处方前一条推荐。所以需要根据hive的窗口函数再加条件,实现一个窗口,筛选两条数据出来。

select
t1.*
,case when  substring(t1.gmt_created,1,19)=substring(t1.gmt_created_max,1,19) then 1 else 0 end as use_flagfrom (
select 
t1.*
,max(casewhen t1.log_type='2-2' and  substring(t1.gmt_created, 1, 19) <= substring(t4.expense_date, 1, 19) then substring(t1.gmt_created, 1, 19)end) over(partition by t1.visitCode, t4.expense_date) as gmt_created_max
from wedw_dw.unfold_chdisease_gpt_opt_log_df t1
left join (select  visit_no
,mi_card_no
,expense_date
from  wedw_dw.doris_yyf_styy_txynhis_record_settle_bill_detail_df_tmp 
group by visit_no
,mi_card_no
,expense_date
)   t2 on t1.visitCode=t2.visit_no and t1.patientIdNo=t2.mi_card_no 
) t1 
http://www.lryc.cn/news/231040.html

相关文章:

  • 2023年【北京市安全员-B证】试题及解析及北京市安全员-B证证考试
  • 二维码智慧门牌管理系统升级解决方案:流量监控引领服务卓越
  • Linux内核面试题(1)
  • wpr -start generalprofile -start pool -filemode 这句命令具体是什么意思
  • C/CPP基础练习题多维数组,矩阵转置,杨辉三角详解
  • 父组件用ref获取子组件数据
  • Haskell添加HTTP爬虫ip编写的爬虫程序
  • MySQL 社区开源备份工具 Xtrabackup 详解
  • 【仿真】ruckig在线轨迹生成器示例
  • LeetCode 面试题 16.22. 兰顿蚂蚁
  • Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
  • 科研学习|研究方法——Python计量Logit模型
  • 灵活运用Vue指令:探究v-if和v-for的使用技巧和注意事项
  • nvidia-docker部署pytorch服务【GPU工作站】
  • 单链表的实现
  • 【python】面向对象(类型定义魔法方法)
  • 1.微服务与SpringCloud
  • 【2023全网最全最火】Selenium WebDriver教程(建议收藏)
  • dimp 导入dmp文件报错:无效的模式名(DM8:达梦数据库)
  • 宿主机无法连接docker里的redis问题解决(生产环境慎用)
  • 给女朋友开发个小程序低价点外卖吃还能赚钱
  • 外贸客户管理系统是什么?推荐的管理软件?
  • 数据挖掘:分类,聚类,关联关系,回归
  • 力扣labuladong一刷day10一网打尽股票买卖问题共6题
  • 微信小程序手写table表格
  • UE5 - UI Material Lab 学习笔记
  • oracle删除重复的数据
  • Python中的并发编程是什么,如何使用Python进行并发编程?
  • 【LeetCode】136. 只出现一次的数字
  • HTTP服务器——tomcat的安装和使用