hql面试题之上海某资深数仓开发工程师面试题-求不连续月份的月平均值
1.题目
A,B两组产品的月平均值,月平均值是当月的前三个月值的一个平均值,注意月份是不连续的,如果当月的前面的月份不存在,则为0。如A组2023-04的月平均值为2023年1月的数据加2023-02月的数据的平均值,因为没有其他月份则需要再加一个0,再求平均值。要求:求出每个月的月平均值。
‘A’,‘2023-01’,3030
‘A’,‘2023-02’,5464
‘A’,‘2023-04’,5467
‘A’,‘2023-05’,4646
‘A’,‘2023-06’,8546
‘B’,‘2022-01’,9846
‘B’,‘2022-02’,1562
‘B’,‘2022-03’,2733
‘B’,‘2022-05’,8833
‘B’,‘2022-06’,8787
2.建表
create table if not exists non_continuous_time(
product string comment '产品号',
pro_time string comment '时间',
pro_values int comment '值'
)comment '非连续时间表'
insert into non_continuous_time values
('A','2023-01',3030),
('A','2023-02',5464),
('A','2023-04',5467),
('A','2023-05',4646),
('A','2023-06',8546),
('B','2022-01',9846),
('B','2022-02',1562),
('B','2022-03',2733),
('B','2022-05',8833),
('B','2022-06',8787)
3.思路
使用lag窗口函数,lag的偏移量可以锁定前三个月的数据,没有的显示为0;
select product,pro_time,pro_values,coalesce(lag(pro_values,1) over(partition by product order by pro_time),0) lg_one,coalesce(lag(pro_values,2) over(partition by product ORDER BY pro_time),0) lg_two,coalesce(lag(pro_values,3) over(partition by product ORDER BY pro_time),0) lg_thr
from non_continuous_time

最终结果:
selecta.product,a.pro_time,(lg_one+lg_two+lg_thr)/3 sum_values
from
(
select product,pro_time,pro_values,coalesce(lag(pro_values,1) over(partition by product order by pro_time),0) lg_one,coalesce(lag(pro_values,2) over(partition by product ORDER BY pro_time),0) lg_two,coalesce(lag(pro_values,3) over(partition by product ORDER BY pro_time),0) lg_thr
from non_continuous_time
)a

相关文章:
hql面试题之上海某资深数仓开发工程师面试题-求不连续月份的月平均值
1.题目 A,B两组产品的月平均值,月平均值是当月的前三个月值的一个平均值,注意月份是不连续的,如果当月的前面的月份不存在,则为0。如A组2023-04的月平均值为2023年1月的数据加2023-02月的数据的平均值,因为没有其他月…...
VT驱动开发
VT技术(编写一个VT框架) 1.VT技术介绍 1.技术介绍 1.VT技术 VT技术是Intel提供的虚拟化技术,全称为Intel Virtualization Technology。它是一套硬件和软件的解决方案,旨在增强虚拟化环境的性能、可靠性和安全性。VT技术允许在一台物理计算机上同时运…...
火柴人版王者-Java
主类 package com.sxt; import com.sxt.beast.Beast; import java.awt.Component; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter…...
docker 中的–mount 和-v 参数有啥区别
docker 中的–mount 和-v 参数有啥区别 --mount 和 -v 是 Docker 中用于挂载卷(Volumes)的两种不同的方式。 --mount 参数: 这是一种更为灵活和强大的挂载方式,允许你指定多个选项。 使用 --mount 参数,你可以指定挂…...
设计规则:模块化的力量
这是一本比较冷门的书**《设计规则:模块化的力量》**,虽然豆瓣上只有58个评价,但是确实能学到很多东西。 这本书对我非常深远。不是是投资,创业,还是其他领域,模块化思想都能帮上你。这本书告诉我们生万物…...
数据结构与算法之递归: LeetCode 78. 子集 (Typescript版)
子集 https://leetcode.cn/problems/subsets/ 描述 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1 输入:nums [1,2,3]…...
C# 使用 Fody 监控方法执行时间
写在前面 在做性能调优的时候,经常需要跟踪具体方法的执行时间;通过插入Stopwatch的方案对代码的侵入性太高了,所以引入了 MethodTimer.Fody 类库,采用编译时注入的方式给方法动态加上Stopwatch 跟踪代码,只需要在目标…...
J2EE征程——第一个纯servletCURD
第一个纯servletCURD 前言在此之前 一,概述二、CURD1介绍2查询并列表显示准备实体类country编写 CountryListServlet配置web.xml为web应用导入mysql-jdbc的jar包 3增加准备增加的页面addc.html编写 CAddServlet配置web.xml测试 4删除修改CountryListServlet…...
BatchOutput PDF for Mac(PDF 批量处理软件)
BatchOutput PDF是一款适用于 Mac 的 PDF 批量处理软件。它可以帮助用户将多个 PDF 文件进行异步处理,提高工作效率。 BatchOutput PDF 可以自动化执行许多任务,包括 PDF 文件的打印、转换、分割、压缩、加密、重命名等,而且它还可以将自定义…...
记一次oracle错误处理
16:00:05 SQL> alter database open; alter database open * 第 1 行出现错误: ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项 16:00:49 SQL> startup ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它 16:02:56 SQL> shutdown immediate O…...
hugging face下载dataset时候出现You must be authenticated to access it.问题解决
Cannot access gated repo for url https://huggingface.co/tiiuae/falcon-180B/resolve/main/tokenizer_config.json. Repo model tiiuae/falcon-180B is gated. You must be authenticated to access it. 参考https://huggingface.co/docs/huggingface_hub/guides/download …...
数据结构---树
树概念及结构 1.树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的 有一个特殊的结点,…...
tomcat调优配置
一. 设置账户进入管理页面 通过浏览器进入Tomcat7的管理模块页面:http://localhost:8080/manager/status 按照提示,在Tomcat7服务器指定的位置修改配置文件(conf/tomcat-users.xml),增加相应的用户和角色配置标签 <…...
基于深度学习的点云三维目标检测方法综述
论文标题:基于深度学习的点云三维目标检测方法综述 作者:郭毅锋1,2†,吴帝浩1,魏青民1 发表日期: 2023 1 阅读日期 :2023 11 29 研究背景&…...
Linux命令中的符号
目录 1 管道符 | 1.1 | grep [要检索的东西] 1.2 echo | tee 2 重定向 2.1 输出重定向覆盖 > 2.2 输出重定向添加 >> 2.3 文件输入重定向 < 2.4 多行文本输入重定向 << 2.5 常用搭配 2.5.1 终端不显示 > /dev/null 1 管道符 | 我们…...
BTCPay Server:免费、安全、开源的比特币支付处理器 | 开源日报 No.90
MunGell/awesome-for-beginners Stars: 58.0k License: NOASSERTION 这个项目是一个收集开源项目的列表,旨在帮助初学者找到可以贡献代码的机会。该列表按编程语言分类,并列出了每个项目以及其标签 (如 “good-first-issue”、“beginner” 等)。主要功…...
【数据挖掘】国科大刘莹老师数据挖掘课程作业 —— 第三次作业
Written Part 1. 基于表 1 1 1 回答下列问题(min_sup40%, min_conf75%): Transaction IDItems Bought0001{a, d, e}0024{a, b, c, e}0012{a, b, d, e}0031{a, c, d, e}0015{b, c, e}0022{b, d, e}0029{c, d}0040{a, b, c}0033{a, d, e}0038…...
Windows挂载NFS
ubuntu开启nfs 安装 sudo apt install nfs-kernel-server编辑 /etc/exports /data/share *(rw,no_root_squash)重启服务 sudo systemctl restart nfs-server.service验证 showmount -e localhostwindows连接NFS 选择控制面板 > 程序 > 启用或关闭 Windows 功能 添加…...
数据结构第五课 -----二叉树的代码实现
作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 🎂 作者介绍: 🎂🎂 🎂 🎉🎉🎉…...
优橙内推北京专场——5G网络优化(中高级)工程师
可加入就业QQ群:801549240 联系老师内推简历投递邮箱:hrictyc.com 内推公司1:西安长河通讯有限责任公司 内推公司2:北京电旗通讯技术股份有限公司 内推公司3:润建股份有限公司 西安长河通讯有限责任公司 西安长河…...
黑丝空姐-造相Z-Turbo构建AI编程助手:自动生成前端组件配图
黑丝空姐-造相Z-Turbo构建AI编程助手:自动生成前端组件配图 想象一下这个场景:你正在为一个航空公司的内部管理系统编写前端代码,需要创建一个“机组人员资料卡”组件。你已经写好了HTML结构和CSS样式,但卡在了头像占位符上——是…...
别再只会‘永不在此停止’了!实战绕过网站JS混淆与内存爆破的三种硬核方法
实战突破:三种硬核方法破解JS混淆与内存爆破 打开开发者工具的那一刻,页面突然卡死,控制台不断弹出debugger断点——这可能是每个爬虫工程师都经历过的噩梦。当简单的"永不在此停止"失效时,我们需要更高级的技术手段来应…...
Java中的修饰符,类,接口,多态
最近学了Java中的修饰符,类,接口,多态1.修饰符学了public,默认,protected,private。public是公用的,都能访问。默认的话只能在同类中和同包中调用,而protected则可以在同类中&#x…...
2026年第13周最热门的开源项目(Github)
本期榜单展示了与人工智能、编程助手和代理技术相关的多个项目。以下是对榜单的一些分析和观察: 综合观察 主流语言: 榜单中出现了多种编程语言,主要包括:TypeScript、Python和JavaScript,反映出TypeScript在开发现代…...
避坑指南:用Pixhawk 4飞控连接Nooploop TOFSense激光雷达,这些线序错误千万别犯
Pixhawk 4与TOFSense激光雷达安全接线全攻略:从接口定义到防烧毁实战 当你第一次拿到TOFSense激光雷达模块时,那种迫不及待想把它接入飞控的心情我完全理解——毕竟谁不想让自己的无人机立刻获得精准的测距能力呢?但作为一个曾经因为接错线而…...
OpenVINO benchmark_app 性能测试全攻略:从参数解析到FP32/INT8模型对比实战
OpenVINO benchmark_app 深度性能调优指南:参数解析与量化模型实战 在边缘计算和嵌入式设备上部署AI模型时,性能优化往往是决定项目成败的关键因素。Intel推出的OpenVINO工具套件中的benchmark_app,就像一位专业的"模型体检医生"&a…...
ESP32开发板变身万能协议分析仪
1. ESP32开发板的隐藏潜力:从物联网到万能协议分析仪当大多数人拿到ESP32开发板时,第一反应都是用它来做物联网项目。确实,这款集成了Wi-Fi和蓝牙功能的微控制器在智能家居、远程监控等领域表现出色。但今天我要告诉你的是,ESP32的…...
网络基础面试题:简单谈谈你对CDN的理解?原理+流程图+通俗讲解
网络基础面试题:简单谈谈你对CDN的理解?原理流程图通俗讲解一、前言二、CDN 是什么?(一句话核心)三、为什么要用 CDN?四、CDN 工作流程图(最清晰)五、CDN 工作步骤(简单 …...
DEBUG_UNIVERSAL:mbed OS轻量级协议无关调试框架
1. DEBUG_UNIVERSAL:面向mbed兼容微控制器的通用调试工具深度解析DEBUG_UNIVERSAL并非一个独立的商业调试器硬件,而是一个专为mbed OS生态设计的轻量级、可裁剪、协议无关的固件级调试框架。其核心价值在于将传统上依赖专用JTAG/SWD调试器(如…...
I2C设备扫描器:嵌入式系统总线拓扑发现与地址诊断工具
1. I2C设备扫描器:嵌入式系统中总线拓扑发现的核心工具IC(Inter-Integrated Circuit)总线因其仅需两根信号线(SCL时钟线与SDA数据线)、支持多主多从架构、内置仲裁与应答机制等特性,成为嵌入式系统中传感器…...
