hive中补充月份和日期,使得月份和日期连续

补充月份,这个需求是计算每个小组前三个月的平均产能,前三个月指的是都是自然月,比如现在是2023年7月,所以现在计算的前三个月的平均产能就是2023年4月到6月的平均产能,但是这些月份可能不是连续的
方法一:把日期补齐

WITH t1 AS (SELECT group_id,group_name,all_pert,stat_monthFROM dws_group_user_month_statWHERE dt = '2023-07-10'and group_name is not nulland    group_id = '00a62545-e66f-4961-9f39-8f4b5c894d19'
)
,months_table AS (SELECT group_name,group_id,min_month,max_month,add_months(min_month, i) as cur_monthFROM (SELECT group_name,group_id,min(stat_month) AS min_month,max(stat_month) AS max_monthFROM t1
--         WHERE group_id = '508b3e79-6e9a-446a-ac29-1f4428a006af'GROUP BY group_name, group_id) t1LATERAL VIEW posexplode(split(space(cast(months_between(max_month, min_month) as int)), ' ')) pe AS i, num
)
select group_name,group_id,cur_month,min_month,max_month,all_pert,AVG(all_pert) OVER (PARTITION BY group_name, group_id ORDER BY cur_month ROWS BETWEEN 3 PRECEDING AND 1 PRECEDING) AS average_sales
from (SELECT months_table.group_name,months_table.group_id,cur_month,min_month,max_month,nvl(all_pert, 0) all_pertFROM t1right JOIN months_tableON t1.group_name = months_table.group_nameand t1.stat_month = cur_month)t1;

方法二:
将数据炸开成三份

with t1 AS (
selectmonth_diff,stat_month,all_pert,group_name
from dws_group_month_stat lateral view explode(array(1,2,3)) tmp as month_diff
where dt = '${datestr}'
),t2 as (select all_pert,t1.stat_month,group_name,add_months(stat_month,month_diff)  cur_monthfrom t1
)insert overwrite table dws_group_three_month_stat  partition (dt='${datestr}')
selectgroup_name,cur_month,three_month_pert/3  three_month_pert
from (select  cur_month,sum(all_pert)  three_month_pert,group_namefrom t2group by cur_month,group_name)t3;"

补齐日期:

select staff_id,start_date,end_date,date_add(start_date, i) real_date,dayofweek(date_add(start_date, i)) real_week,codefrom t3LATERAL VIEW posexplode(split(space(DATEDIFF(end_date, start_date)), ' ')) pe AS i, numgroup by staff_id, start_date, end_date, i, code, date_add(start_date, i),dayofweek(date_add(start_date, i)),code

这里使用的是datediff

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/7312.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue之vue-keyboard组件

功能描述 业务键盘组件,提供给业务开发继承,它的父级组件为vue-base #方法 手工触发输入事件 change: function(text); 接受输入 accept: function(text); 显示屏幕键盘 show(e, current, layout); 隐藏屏幕键盘 hide: function(); 聚焦输入 focusInput($event, kbId, lay…

redis(11):springboot中使用redis

1 创建springboot项目 2 创建pom文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http:/…

jupyter常用的魔法命令合集

下面是 Jupyter Notebook 中一些常用的魔术命令&#xff1a; 行魔术命令&#xff08;Line Magics&#xff09;&#xff1a; %run&#xff1a;运行指定的 Python 脚本。%load&#xff1a;将外部脚本加载到单元格中。%whos&#xff1a;列出当前命名空间中的变量和它们的信息。%ti…

vue3+Luckysheet实现表格的在线预览编辑(electron可用)

前言&#xff1a; 整理中 官方资料&#xff1a; 1、github 项目地址https://github.com/oy-paddy/luckysheet-vue-importAndExport/tree/master/https://github.com/oy-paddy/luckysheet-vue-importAndExport/tree/master/ 2、xlsx vue3 json数据导出excel_vue3导出excel_羊…

【SpirngCloud】分布式事务解决方案

【SpirngCloud】分布式事务解决方案 文章目录 【SpirngCloud】分布式事务解决方案1. 理论基础1.1 CAP 理论1.2 BASE 理论1.3 分布式事务模型 2. Seata 架构2.1 项目引入 Seata 3. 强一致性分布式事务解决方案3.1 XA 模式3.1.1 seata的XA模式3.1.2 XA 模式实践3.1.3 总结 4. 最终…

React AntDesign表批量操作时的selectedRowKeys回显选中

不知道大家是不是在AntDesign的某一个列表想要做一个批量导出或者操作的时候&#xff0c;发现只要选择下一页&#xff0c;即使选中的ids 都有记录下面&#xff0c;但是就是不回显 后来问了chatGPT&#xff0c;对方的回答是&#xff1a; 在Ant Design的DataTable组件中&#xf…

什么是框架?为什么要学框架?

一、什么是框架 框架是整个或部分应用的可重用设计&#xff0c;是可定制化的应用骨架。它可以帮开发人员简化开发过程&#xff0c;提高开发效率。 项目里有一部分代码&#xff1a;和业务无关&#xff0c;而又不得不写的代码>框架 项目里剩下的部分代码&#xff1a;实现业务…

基于C++的QT基础教程学习笔记

文章目录&#xff1a; 来源 教程社区 一&#xff1a;QT下载安装 二&#xff1a;注意事项 1.在哪里写程序 2.如何看手册 3.技巧 三&#xff1a;常用函数 1.窗口 2.相关 3.按钮 4.信号与槽函数 5.常用栏 菜单栏 工具栏 状态栏 6.铆接部件 7.文本编辑 8…

Docker Compose(九)

一、背景&#xff1a; 对于现代应用来说&#xff0c;大多数都是通过很多的微服务互相协同组成一个完整的应用。例如&#xff0c;订单管理、用户管理、品类管理、缓存服务、数据库服务等&#xff0c;他们构成了一个电商平台的应用。而部署和管理大量的服务容器是一件非常繁琐的事…

【时间复杂度】

旋转数组 题目 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 /* 解题思路&#xff1a;使用三次逆转法&#xff0c;让数组旋转k次 1. 先整体逆转 // 1,2,3,4,5,6,7 // 7 6 5 4 3 2 1 2. 逆转子数组[0, k - 1] // 5 6 7 4 3…

疲劳驾驶检测和识别2:Pytorch实现疲劳驾驶检测和识别(含疲劳驾驶数据集和训练代码)

疲劳驾驶检测和识别2&#xff1a;Pytorch实现疲劳驾驶检测和识别(含疲劳驾驶数据集和训练代码) 目录 疲劳驾驶检测和识别2&#xff1a;Pytorch实现疲劳驾驶检测和识别(含疲劳驾驶数据集和训练代码) 1.疲劳驾驶检测和识别方法 2.疲劳驾驶数据集 &#xff08;1&#xff09;疲…

【贪心算法】334. 递增的三元子序列

334. 递增的三元子序列 解题思路 找到的递增序列 不一定是连续的固定第一个数first 然后开始向后找第二个数second要求second 大于 first 找到之后 向后找第三个数third 找到 返回true如果third < first 那么更新first third 重新找如果只是third > first 更新second …

【MyBatis】总结

1.xml映射文件都会写一个Dao接口与之对应&#xff0c;Dao工作原理是什么&#xff0c;Dao接口里的方法参数不同时&#xff0c;方法能重载么 Dao接口即Mapper接口&#xff0c;接口的全限名&#xff0c;映射文件中的namespace的值&#xff0c; 接口的方法名就是映射文件中Mapper的…

MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点6:MySQL Enterprise Monitor之Query Analyzer

文章目录 MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点6&#xff1a;MySQL Enterprise Monitor之Query AnalyzerMySQL Enterprise Monitor之Query AnalyzerQuery Response Time index (QRTi)例题例题1: Query Analyzer答案与解析1 参考 【免责声明】文章仅供学习交流&#x…

vue中如何通过webpack-bundle-analyzer打包分析工具进行配置优化

vue中随着项目的不断功能迭代和开发&#xff0c;项目文件越来越多&#xff0c;项目的打包文件也越来越大。如何对打包文件进行分析优化&#xff0c;减小打包文件大小呢&#xff1f;可以通过webpack-bundle-analyzer 这个打包分析工具进行解决。 1、webpack-bundle-analyzer的安…

学生管理系统-07打包与上线

一、项目架构 vue的项目必须要进行打包,并部署在nginx服务器上的 二、vue的打包 1、修改vue.cofing.js文件 在该文件中添加publicPath属性,值为./ const { defineConfig } = require(@vue/cli-service) module.exports = defineConfig({ transpileDependencies: true, p…

Python Flask构建微信小程序订餐系统 (十一)

🔥 已经删除的会员不允许进行编辑昵称 🔥 🔥 已经删除的会员要隐藏掉会员信息的编辑按钮 🔥 🔥 创建商品表 food 🔥 CREATE TABLE `food` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT,`cat_id` int(11) NOT NULL DEFAULT 0 COMMENT 分类id,`name` varchar…

存储转发服务

此服务用于以下场景&#xff0c;有模拟服务的需求&#xff0c;可以通过转发服务&#xff0c;记录请求和返回参数&#xff0c;存入本地&#xff0c;下次同样请求&#xff0c;不再请求真是服务。可以用在soap服务&#xff0c;webapi服务。 Router: import { RouterAbs } from ./…

【算法题解】51. 二叉树的最近公共祖先

这是一道 中等难度 的题 https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/ 题目 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为…

【模型压缩】 LPPN论文阅读笔记

LPPN论文阅读笔记 LPPN: A Lightweight Network for Fast Phase Picking 背景 深度学习模型的问题在于计算复杂度较高&#xff0c;在实际数据处理中需要面临较高的处理代价&#xff0c;且需要专用的加速处理设备&#xff0c;如GPU。随着数据累积&#xff0c;迫切需要设计一种…