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

在这里插入图片描述

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

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

相关文章

股票代码合法验证:python字符串str应用

从键盘输入六位股票代码字符串,判定合法并输出板块分类,否则输出“NO”。 (笔记模板由python脚本于2023年12月04日 19:19:07创建,本篇笔记适合熟悉python字符串和字典的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https:…

MySQL安装,建立,导入本地Txt文件

MySQL安装教程参照如下: Windows下MySQL的安装及初始化设置 - 简书 MySQL修改数据默认存储路径 MySQL修改数据默认存储路径_show global variables like %datadir%-CSDN博客 建立数据库 C:\>mysql -u testsql -p mysql> create database mysqldb; mysq…

Oracle 中换行chr(10)、回车chr(13)

一、前言 chr(n):返回 ascii 值对应的字符。 ascii(char):返回字符 char对应的ascii 值。 chr(n) 和 ascii(char) 作用刚好是相反的。 SQL> select chr(65) from dual; 控制台显示:ASQL> select ascii(A) from dual; 控制台显示&am…

API资源对象Deployment;API资源对象Service;API资源对象DaemonSet;API资源对象StatefulSet

API资源对象Deployment;API资源对象Service;API资源对象DaemonSet;API资源对象StatefulSet API资源对象Deployment Deployment YAML示例: vi ng-deploy.yaml apiVersion: apps/v1 kind: Deployment metadata:labels:app: myng…

Spring Cloud + Vue前后端分离-在线课程介绍

第2章 使用Maven搭建SpringCloud项目 第3章 SpringBoot项目技术整合 第4章 使用Vue cli 4搭建管理控台 第5章 单表管理功能前后端开发 第6章 通用代码生成器开发 第7章 核心业务功能开发 第8章 文件上传功能开发 第9章 大文件断点续与极速秒传 第10章 基于阿里云OSS的文…

前端面试题(面试碰到的一些)(一)

1、浏览器的存储方式都有哪些? cookie: 优点——兼容性好,请求头自带cookie方便 。缺点——大小只有4k, 请求头加入 cookie 浪费流量(多用于记录登录状态) localStorage: 优点—— 操作方便,永久性存储&#xff…

JIRA 重建索引加快速度

JIRA 重建索引加快速度 JIRA数据量大时,做一遍reindex的速度会很慢,经常需要几个小时 这是后需要查看CPU,如果做reindex时候CPU占用率不高,增加 index的线程数以加快 reindex 配置步骤 停止掉JIRA在home目录下的 jira-config.…

漫谈HBuilderX App-Jenkins热更新构建

漫谈Uniapp App热更新包-Jenkins CI/CD打包工具链的搭建 零、写在前面 HBuilderX是DCloud旗下的IDE产品,目前只提供了Windows和Mac版本使用。本项目组在开发阶段经常需要向测试环境提交热更新包,使用Jenkins进行CD是非常有必要的一步。尽管HBuilderX提…

python pyaudio给数据加噪声

python pyaudio给数据加噪声 # -*- coding: utf-8 -*- import argparse import array import math import numpy import numpy as np import random import wavedef get_args():parser argparse.ArgumentParser()parser.add_argument("--clean_file", typestr, req…

cordova详解

从八个方面让你快速了解cordova(一) - 掘金 从八个方面让你快速了解cordova(二) - 掘金 Cordova和React-Native两种框架的区别和优劣分析_cordova和react native-CSDN博客 Cordova开发App的优缺点是什么? - 咕噜企业…

开源CDN软件GoEdge —— 筑梦之路

官方网站:GoEdge CDN - 制作自己的CDN - GoEdge CDN | 自建CDN GoEdge是一款管理分布式CDN边缘节点的开源工具软件,目的是让用户轻松地、低成本地创建CDN/WAF等应用。 特性 免费 - 开源、免费、自由、开放 简单 - 架构简单清晰,安装简单&a…

Android,JNI开发和NDK之间的联系

Android,JNI开发和NDK。 1.jni和ndk jni是在jdk中就有出现的 在我们jdk路径中 D:\java\jdk11\include 这就是jdk中的jni Android开发环境中的ndk也有jni, D:\Android\sdk\ndk\20.0.5594570\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\in…

DICE模型原理

随着温室气体排放量的增大和温室效应的增强,全球气候变化问题受到日益的关注。我国政府庄严承诺在2030和2060年分别达到“碳达峰”和“碳中和”,因此气候变化和碳排放已经成为科研人员重点关心的问题之一。气候变化问题不仅仅是科学的问题,同…

Django二转Day06

1.多表查询 基于对象 基于双下划线 正向和反向 聚合查询 分组查询(配合聚合使用) F查询和Q查询 2.其他字段和字段参数 其他字段 字段参数;ORM参数 ForeignKey 属性 ManyToManyField 用于表示多对多的关联关系。在数据库中通过第三…

解决msvcp140.dll丢失问题的5种方法,验证有效

在计算机编程和软件开发中,我们经常会遇到一些陌生的DLL文件,比如msvcp140.dll。这些DLL文件是动态链接库(Dynamic Link Libraries)的缩写,它们包含了可以被多个程序共享的代码和数据。那么,msvcp140.dll是…

优思学院|六西格玛中的过程管理思维

过程是什么? 过程(Process)是一系列相互关联的活动,将输入转化为输出,我们习惯于用 X 来表示输入,用 Y 来表示输出,就如下图一样。在产品(服务)质量形成过程中&#xff…

【ArcGIS Pro微课1000例】0048:深度学习--人群计数

文章目录 一、小学回忆录二、深度学习计算人头数三、案例实现一、小学回忆录 加载配套实验数据包中的图片及训练模型。你还记得当年的小学毕业班有多少同学吗?今天我们就用ArcGIS提供的人工智能工具,重温一下童年记忆。 二、深度学习计算人头数 本案例使用到的是深度学习中…

pyinstaller打包pyside

准备软件 准备一个python代码展示pyside的gui 安装PyInstaller 首先检查本机有没有安装PyInstaller ,如果没有安装的话,需要运行 pip3 install PyInstaller 打包windowed界面 pyinstaller -w pymain.py 问题 Could not find the Qt platform plugi…

UNDERSTANDING AND IMPROVING INFORMATION TRANSFER IN MULTI-TASK LEARNING

Z i _i i​ X i R i X_iR_i Xi​Ri​, X X X是Task embedding layers, R R R是Alignment matrices 辅助信息 作者未提供代码

编程实战:类C语法的编译型脚本解释器(七)语句

系列入口: 编程实战:类C语法的编译型脚本解释器(系列)-CSDN博客 本文介绍语句,主要是控制语句,if、else、for之类。 一、语句概览 //语句//EXPRESSION RETURN:expressions[0]//BLOCK:senetnces//IF:if(exp…