SQL进阶技巧:每年在校人数统计 | 区间重叠问题

news2024/9/25 13:20:37

目录

0 问题分析

1 数据准备

2 问题分析

3 小结

区间重叠问题


0 问题分析

 有一个录取学生人数表 in_school_stu,记录的是每年录取学生的人数及录取学生的学制,计算每年在校学生人数。

1 数据准备

create table in_school_stu as
(
select stack(
    5,
	1,2001,2,1200,
	2,2000,5,1300,
	3,2003,4,1400,
	4,2002,3,1500,
	5,2002,2,1600
) as(id,year,stu_num,stu_len)
);

2 问题分析

本题实际上属于区间重叠问题,我们将入年份与学制加起来得到结束时间

select id
           , year               year_start
           , year + stu_len - 1 year_end
           , stu_num
      from in_school_stu

通过上面简单的分析可以看到该问题为典型的区间重叠问题,将时间展开后,具体分析可参考如下图。

求解上面的时序图,可以按照如下步骤: 

第一步:利用posexplode()先将数据展开,转换为明细表

select id
     , pos
     , year       year_start
     , year + pos year_end
     , stu_num
from in_school_stu stu
         lateral view posexplode(split(space(stu_len - 1), '(?!&)')) tmp as pos, val

第二步:基于步骤1的明细表,按时间汇总即可。

最终SQL如下:

select year + pos   year
     , sum(stu_num) stu_num
from in_school_stu stu
         lateral view posexplode(split(space(stu_len - 1), '(?!&)')) tmp as pos, val
group by year + pos;

3 小结

本文对在校学生人数统计这一问题进行了分析,如果对本专栏区间重叠问题这一技巧和方法比较熟的,解决该问题会非常简单。

区间重叠问题

SQL进阶技巧:如何计算重叠区间合并问题?_sql 时间段有交集的记录合并-CSDN博客

SQL进阶技巧:重叠区间问题分析之品怕打折日期问题

SQL进阶技巧:如何按任意时段分析时间区间问题? | 分区间讨论【左、中、右】_sql按某时段日期区间聚合-CSDN博客

具体技巧可以参考数字化建设通关指南专栏案例

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

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

相关文章

【平渊网络】副业项目拆解:视频借鉴式搬运项目 | 搞笑视频跨平台 “借鉴式” 搬运项目思路 | 抖音防查重机制基础

目录 项目介绍 实操:账号准备 素材制作教学 防查重机制基础 项目介绍 只分享实操干货,不浪费时间。如果你没有2台手机,或者手机不支持分身就不用往下读了,这个项目大概率是做不出流量的。 项目是情感聊天对话的变种&#xff…

C++ DLL DEMO

头文件dlltest.h #pragma once #include "pch.h" #include <iostream> #include <fstream> #include <iomanip> #include <string> #include <bitset>extern "C" __declspec(dllexport) void debugService(uint32_t debugF…

【全网最全】2024年数学建模国赛B题31页完整建模过程+成品论文+matlab/python代码等(后续会更新

您的点赞收藏是我继续更新的最大动力&#xff01; 一定要点击如下的卡片&#xff0c;那是获取资料的入口&#xff01; 2024数学建模国赛B题 【全网最全】2024年数学建模国赛B题31页完整建模过程成品论文matlab/python代码等&#xff08;后续会更新「首先来看看目前已有的资料…

【计算机图形学】《五讲速通CG重点》第三讲-Rendering

如果这篇文章对你有帮助&#xff0c;欢迎点赞与收藏~ 目录 Rasterization 1 Points 2 Line 2.1 DDA&#xff08;差分&#xff09; 2.2 Bresenham’s algorithm: 2.3 Mid-point algorithm (0-45) 3 Triangles 4 Polygon 5 Triangulation 6 Interpolation 7 Anti-alia…

运动耳机哪个牌子的好?五大选购技巧助你轻松购买

作为一名专注运动装备的测评专家&#xff0c;我曾深入体验了多款骨传导耳机&#xff0c;发现市场上不少品牌并未如广告所宣称的那般出色&#xff0c;部分低质或不专业的骨传导耳机在使用时不仅舒适度欠佳&#xff0c;还可能因设计缺陷导致声音泄露严重&#xff0c;非常影响使用…

共赢算力未来,华宇TAS应用中间件获“鲲鹏原生开发认证”

9月2日&#xff0c;华为在北京中关村国家自主创新示范区会议中心举办了以“鲲鹏原生&#xff0c;力算未来”为主题的鲲鹏原生开发伙伴圈层活动&#xff0c;旨在聚集鲲鹏生态合作伙伴&#xff0c;搭建交流平台&#xff0c;加强产业圈各方紧密合作&#xff0c;抓住产业机遇&#…

Canvas艺术之旅:了解几个绘制基本图形的 API

了解几个绘制基本图形的 API Canvas 是 HTML5 提供的绘画 API&#xff0c;可以用于在 Web 页面上绘制各种基本图形。本文介绍一些 Canvas 绘制基本图形的 API&#xff1a; 前置条件 注意&#xff1a;本文章所提供的代码示例默认已经进行了 canvas 元素定义&#xff0c;DOM 获…

Java项目: 基于SpringBoot+mybatis+maven+mysql教师工作量管理系统(含源码+数据库+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismavenmysql教师工作量管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观…

日志框架log4j打印异常堆栈信息携带traceId,方便接口异常排查

一、异常堆栈无traceId 排查定位问题异常痛苦 在日常项目开发中&#xff0c;我们会自定义一个traceId方便&#xff0c;链路追踪。在log4j2.xml 我们可能是这样去配置日志打印格式。 <Console name"CONSOLE" target"SYSTEM_OUT"><PatternLayoutpa…

python学习第六节:使用python制作九九乘法表和学生管理系统

python学习第六节&#xff1a;使用python制作九九乘法表和学生管理系统 通过前面五节的了解&#xff0c;已经大概知道python的语法以及基础函数&#xff0c;下面是简单的两个小程序。不会做没关系&#xff0c;看得懂就可以了&#xff0c;如果能够自己加工举一反三那就更好了。 …

计算机网络 TCP/IP协议篇

今天学习了TCP/IP协议的相关知识&#xff0c;学习笔记如下&#xff1a; 在学习之前&#xff0c;我们先抛出几个问题&#xff0c;什么是TCP/IP协议簇&#xff1f;TCP/IP协议簇是怎么工作的&#xff1f; TCP/IP模型 协议分层 每层通过协议完成各自特定的功能上层依赖下层提供…

智能对决:提示词攻防中的AI安全博弈

智能对决&#xff1a;提示词攻防中的AI安全博弈 在2024年上海AIGC开发者大会上&#xff0c;知名提示词爱好者工程师云中嘉树发表了关于AI提示词攻防与安全博弈的精彩演讲。他深入探讨了当前AI产品的安全现状&#xff0c;提示词攻击的常见手段及其应对策略。本文将对他的演讲进…

【每日一题】LeetCode 84.柱状图中最大的矩形(栈、数组、单调栈)

【每日一题】LeetCode 84.柱状图中最大的矩形&#xff08;栈、数组、单调栈&#xff09; 题目描述 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 这…

Linux小程序:进度条

目录 一、换行与回车 二、缓冲区 三、倒计时代码 四、进度条实现 实现进度条程序&#xff0c;首先需要两个预备知识&#xff1a; 1.换行与回车 2.缓存区 一、换行与回车 我们通常使用\n作为换行符&#xff0c;但实际上\n是换行回车两种效果的结合&#xff0c;因此我们需…

.iso文件怎么打开?

在日常使用电脑的过程中&#xff0c;很多用户都会遇到.iso文件&#xff0c;尤其是在安装软件、操作系统或者备份光盘内容时。那么&#xff0c;什么是.iso文件&#xff1f;该如何打开它&#xff1f;本文将为大家详细解答这些问题&#xff0c;帮助大家轻松处理.iso文件。 什么是.…

IEEE TRO 人形机器人遥操作的综述

人形机器人的遥操作结合了人类的认知技能和领域专业知识以及人形机器人的物理能力。这种人形机器人的操作多功能性使它们成为远程环境中各种应用的理想平台。然而&#xff0c;人形机器人的复杂性给遥操作带来了挑战&#xff0c;尤其是在通信受限的非结构化动态环境中。尽管在过…

【2024国赛B题】高教杯全国大学生数学建模国赛建模过程+完整代码论文全解全析

你是否在寻找数学建模比赛的突破点&#xff1f;数学建模进阶思路&#xff01; 作为经验丰富的数学建模团队&#xff0c;我们将为你带来2024国赛数学建模竞赛&#xff08;B题&#xff09;的全面解析。这个解决方案包不仅包括完整的代码实现&#xff0c;还有详尽的建模过程和解析…

pdf怎么删除其中一页?这5个pdf编辑方法新手都在用,建议收藏

pdf怎么删除其中一页&#xff1f;在日常的工作和学习生活中&#xff0c;我们经常会遇到需要处理PDF文件的情况。有时候&#xff0c;我们在处理PDF文件时&#xff0c;发现某些页面内容不再需要&#xff0c;想从PDF中删除特定的页面。然而&#xff0c;很多小伙伴对PDF的编辑和修改…

员工上班摸鱼怎么办,上班期间摸鱼

在现代企业的日常运营中&#xff0c;员工的工作效率是企业成功的关键因素之一。随着远程办公的普及&#xff0c;员工在工作中“摸鱼”的现象愈加频繁。这不仅会导致工作效率的下降&#xff0c;还可能拖延项目进展&#xff0c;增加企业的管理成本。面对这一问题&#xff0c;企业…

大模型备案重难点最详细说明【评估测试题+附件】

2024年3月1日&#xff0c;我国通过了《生成式人工智能服务安全基本要求》&#xff08;以下简称《AIGC安全要求》&#xff09;&#xff0c;这是目前我国第一部有关AIGC服务安全性方面的技术性指导文件&#xff0c;对语料安全、模型安全、安全措施、词库/题库要求、安全评估等方面…