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

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&#xf…...

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)个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的 有一个特殊的结点&#xff0c…...

tomcat调优配置

一. 设置账户进入管理页面 通过浏览器进入Tomcat7的管理模块页面&#xff1a;http://localhost:8080/manager/status 按照提示&#xff0c;在Tomcat7服务器指定的位置修改配置文件&#xff08;conf/tomcat-users.xml&#xff09;&#xff0c;增加相应的用户和角色配置标签 <…...

基于深度学习的点云三维目标检测方法综述

论文标题&#xff1a;基于深度学习的点云三维目标检测方法综述 作者&#xff1a;郭毅锋&#xff11;&#xff0c;&#xff12;†&#xff0c;吴帝浩&#xff11;&#xff0c;魏青民&#xff11; 发表日期&#xff1a; 2023 1 阅读日期 &#xff1a;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 这个项目是一个收集开源项目的列表&#xff0c;旨在帮助初学者找到可以贡献代码的机会。该列表按编程语言分类&#xff0c;并列出了每个项目以及其标签 (如 “good-first-issue”、“beginner” 等)。主要功…...

【数据挖掘】国科大刘莹老师数据挖掘课程作业 —— 第三次作业

Written Part 1. 基于表 1 1 1 回答下列问题&#xff08;min_sup40%, min_conf75%&#xff09;&#xff1a; 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 功能 添加…...

数据结构第五课 -----二叉树的代码实现

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…...

优橙内推北京专场——5G网络优化(中高级)工程师

可加入就业QQ群&#xff1a;801549240 联系老师内推简历投递邮箱&#xff1a;hrictyc.com 内推公司1&#xff1a;西安长河通讯有限责任公司 内推公司2&#xff1a;北京电旗通讯技术股份有限公司 内推公司3&#xff1a;润建股份有限公司 西安长河通讯有限责任公司 西安长河…...

黑丝空姐-造相Z-Turbo构建AI编程助手:自动生成前端组件配图

黑丝空姐-造相Z-Turbo构建AI编程助手&#xff1a;自动生成前端组件配图 想象一下这个场景&#xff1a;你正在为一个航空公司的内部管理系统编写前端代码&#xff0c;需要创建一个“机组人员资料卡”组件。你已经写好了HTML结构和CSS样式&#xff0c;但卡在了头像占位符上——是…...

别再只会‘永不在此停止’了!实战绕过网站JS混淆与内存爆破的三种硬核方法

实战突破&#xff1a;三种硬核方法破解JS混淆与内存爆破 打开开发者工具的那一刻&#xff0c;页面突然卡死&#xff0c;控制台不断弹出debugger断点——这可能是每个爬虫工程师都经历过的噩梦。当简单的"永不在此停止"失效时&#xff0c;我们需要更高级的技术手段来应…...

Java中的修饰符,类,接口,多态

最近学了Java中的修饰符&#xff0c;类&#xff0c;接口&#xff0c;多态1.修饰符学了public&#xff0c;默认&#xff0c;protected&#xff0c;private。public是公用的&#xff0c;都能访问。默认的话只能在同类中和同包中调用&#xff0c;而protected则可以在同类中&#x…...

2026年第13周最热门的开源项目(Github)

本期榜单展示了与人工智能、编程助手和代理技术相关的多个项目。以下是对榜单的一些分析和观察&#xff1a; 综合观察 主流语言&#xff1a; 榜单中出现了多种编程语言&#xff0c;主要包括&#xff1a;TypeScript、Python和JavaScript&#xff0c;反映出TypeScript在开发现代…...

避坑指南:用Pixhawk 4飞控连接Nooploop TOFSense激光雷达,这些线序错误千万别犯

Pixhawk 4与TOFSense激光雷达安全接线全攻略&#xff1a;从接口定义到防烧毁实战 当你第一次拿到TOFSense激光雷达模块时&#xff0c;那种迫不及待想把它接入飞控的心情我完全理解——毕竟谁不想让自己的无人机立刻获得精准的测距能力呢&#xff1f;但作为一个曾经因为接错线而…...

OpenVINO benchmark_app 性能测试全攻略:从参数解析到FP32/INT8模型对比实战

OpenVINO benchmark_app 深度性能调优指南&#xff1a;参数解析与量化模型实战 在边缘计算和嵌入式设备上部署AI模型时&#xff0c;性能优化往往是决定项目成败的关键因素。Intel推出的OpenVINO工具套件中的benchmark_app&#xff0c;就像一位专业的"模型体检医生"&a…...

ESP32开发板变身万能协议分析仪

1. ESP32开发板的隐藏潜力&#xff1a;从物联网到万能协议分析仪当大多数人拿到ESP32开发板时&#xff0c;第一反应都是用它来做物联网项目。确实&#xff0c;这款集成了Wi-Fi和蓝牙功能的微控制器在智能家居、远程监控等领域表现出色。但今天我要告诉你的是&#xff0c;ESP32的…...

网络基础面试题:简单谈谈你对CDN的理解?原理+流程图+通俗讲解

网络基础面试题&#xff1a;简单谈谈你对CDN的理解&#xff1f;原理流程图通俗讲解一、前言二、CDN 是什么&#xff1f;&#xff08;一句话核心&#xff09;三、为什么要用 CDN&#xff1f;四、CDN 工作流程图&#xff08;最清晰&#xff09;五、CDN 工作步骤&#xff08;简单 …...

DEBUG_UNIVERSAL:mbed OS轻量级协议无关调试框架

1. DEBUG_UNIVERSAL&#xff1a;面向mbed兼容微控制器的通用调试工具深度解析DEBUG_UNIVERSAL并非一个独立的商业调试器硬件&#xff0c;而是一个专为mbed OS生态设计的轻量级、可裁剪、协议无关的固件级调试框架。其核心价值在于将传统上依赖专用JTAG/SWD调试器&#xff08;如…...

I2C设备扫描器:嵌入式系统总线拓扑发现与地址诊断工具

1. I2C设备扫描器&#xff1a;嵌入式系统中总线拓扑发现的核心工具IC&#xff08;Inter-Integrated Circuit&#xff09;总线因其仅需两根信号线&#xff08;SCL时钟线与SDA数据线&#xff09;、支持多主多从架构、内置仲裁与应答机制等特性&#xff0c;成为嵌入式系统中传感器…...