Oracle - 多区间按权重取值逻辑 ,分时区-多层级-取配置方案(二)


Oracle - 多区间按权重取值逻辑 ,分时区-多层级-取配置方案icon-default.png?t=O83Ahttps://blog.csdn.net/shijianduan1/article/details/133386281

某业务配置表,按配置的时间区间及组织层级取方案,形成报表展示出所有部门方案的取值;

例如,总公司配置20230101-20231231为方案3, 分公司配置 20230301-20230731  为方案2,部门配置20230601-20231031 为方案1,配置优先级为 部门> 分公司>总公司 ,即啥都没配则使用总公司默认值;

继上一篇拆分多区间后, 再次进行优化,目前有阶段性成果,先记录一下,等后续再有改进再发。

上一篇中 对日期区间的边界日期做了单独的拆分,没有将边界日期和其临界的 日期合并。

本篇中会对其进行优化,  单目前基础脚本只支持2个优先级,如多个优先级则需要 增加多次查询

数据源 L:优先级,2>3 ,  B1 开始日期, E1 结束日期

注意: 这里默认数据源的 日期区间不会重复

拆分后结果

以下是代码


WITH S AS(SELECT 3 AS L, '20230101' AS B1, '20230821' AS E1FROM DUALUNION ALLSELECT 3 AS L, '20230822' AS B1, '20231231' AS E1FROM DUALUNION ALLSELECT 2 AS L, '20230301' AS B1, '20230731' AS E1FROM DUALUNION ALLSELECT 2 AS L, '20230901' AS B1, '20230931' AS E1FROM DUAL UNION ALLSELECT 2 AS L, '20230401' AS B1, '20230631' AS E1FROM DUAL)  
,A AS(SELECT S.*, ROW_NUMBER() OVER(PARTITION BY L   ORDER BY B1) AS N FROM S)   --对优先级重新排序,确保优先级差1
,A2 AS(SELECT A.*, NVL(PRE.E1, 0) B_PRE, NVL(NEX.B1, 20991231) AS E_NEXFROM ALEFT JOIN A PRE ON A.N = PRE.N + 1 AND PRE.L = A.LLEFT JOIN A NEX ON A.N = NEX.N - 1 AND NEX.L = A.LWHERE A.L = 2 ) ,  --同级别的优先级,也是有边界的
A3 AS(SELECT * FROM A WHERE L = 3)
SELECT A3.L, GREATEST(A3.B1, A2.B_PRE)as B2,   A2.B1 as E2 FROM A2, A3 WHERE A3.B1 < A2.B1  AND A3.E1 > A2.B1
UNION ALL
SELECT A3.L, A2.E1 as B2, LEAST(A3.E1, A2.E_NEX) AS E2 FROM A2, A3 WHERE A3.B1 < A2.E1 AND A3.E1 > A2.E1
UNION ALL  select  L, B1, E1 from A2
order by L, B2;

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

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

相关文章

电子应用设计方案-19:智能云饭锅系统方案设计

智能云饭锅系统方案设计 一、系统概述 本智能云饭锅系统旨在提供便捷、个性化和智能化的烹饪体验&#xff0c;结合云服务实现远程控制、食谱推荐和烹饪数据管理等功能。 二、系统组成 1. 锅体 - 采用高品质的不粘涂层内胆&#xff0c;确保米饭受热均匀且易于清洁。 - 具备良好…

镁光MT25QU01GXXX norflash调试笔记

目录 前言一、芯片概述二、数据手册解释1. 数据手册获取2.内容概括 三、几个操作的代码1.复位芯片操作2.读取芯片ID3.擦除芯片扇区4.向芯片存入数据5.读取存储的数据6.其它操作函数 前言 本笔记总结如何使用MCU对nor flash进行数据存储&#xff0c;包括芯片基本介绍&#xff0…

Qt界面设计时使各控件依据窗口缩放进行栅格布局的方法

图1 最终效果 想要达成上述图片的布局效果&#xff0c;具体操作如下&#xff1a; 新建一窗体&#xff1a; 所需控件如下&#xff1a; Table View控件一个&#xff1b; Group Box控件一个&#xff1b; Push Button控件2个&#xff1b; Horiziontal Spacer控件2个&#xf…

【Git】:Git基本操作

目录 创建、配置本地仓库 创建本地仓库 配置本地仓库 认识工作区、暂存区、版本库 修改文件 版本回退 撤销修改 删除文件 创建、配置本地仓库 创建本地仓库 我们通常可以通过以下两种方式之一获取 Git 存储库&#xff1a; 自己在本地目录创建一个本地仓库 从其它服务…

CANDENCE: 绘制好的封装元件 刷新(Refresh) 和 替换 (Replace)焊盘

绘制好的封装元件 刷新(Refresh) 和 替换 &#xff08;Replace&#xff09;焊盘 一、刷新(Refresh) 1、以下面这个bga484封装的元件为例 2、打开bga的焊盘文件 3、我们对上面这个焊盘稍加修改&#xff0c;如下&#xff0c;然后保存 4、在封装编辑页面&#xff0c;如下操作 5…

HarmonyOS:使用ArkWeb构建页面

一、简介 页面加载是Web组件的基本功能。根据页面加载数据来源可以分为三种常用场景&#xff0c;包括加载网络页面、加载本地页面、加载HTML格式的富文本数据。 页面加载过程中&#xff0c;若涉及网络资源获取&#xff0c;需要配置ohos.permission.INTERNET网络访问权限。 二、…

修改一下达梦disql 提示符

经常用disql的有时某些信息希望提示一下&#xff0c;默认的只显示SQL> 为了方便使用&#xff0c;可以在 glogin.sql 中增加些内容。 vi $DM_HOME/bin/disql_conf/glogin.sql增加以下几行 set time on set lineshow offcol global_name new_value global_name SELECT ins…

跨境出海安全:如何防止PayPal账户被风控?

今天咱们聊聊那些让人头疼的事儿——PayPal账户被风控。不少跨境电商商家反馈&#xff0c;我们只是想要安安静静地在网上做个小生意&#xff0c;结果不知道为什么&#xff0c;莫名其妙账户就被冻结了。 但其实每个封禁都是有原因的&#xff0c;今天就来给大家分享分享可能的原…

如何读论文【论文精读·1】

第一遍题目 摘要 结论 方法 实验 是不是适合自己看看自己适不适合这篇文章。&#xff08;花时最少&#xff0c;做海选&#xff09; 不需要懂太具体的公式。这一遍阅读之后&#xff0c;你需要再继续思考一下这篇论文的质量以及和自己研究方向的契合程度&#xff0c;决定一下自己…

【模块一】kubernetes容器编排进阶实战之pod生命周期、探针简介、类型及示例

kubernetes pod生命周期、探针简介、类型及示例 kubernetes pod生命周期 pod的生命周期(pod lifecycle)&#xff0c;从pod start时候可以配置postStart检测&#xff0c;运行过程中可以配置livenessProbe和 readinessProbe,最后在 stop前可以配置preStop操作 探针简介 探针是由…

医学AI公开课·第一期|Machine LearningTransformers in Med AI

小罗碎碎念 从这周开始&#xff0c;我计划每个周末录一个视频&#xff0c;分享一些医学人工智能领域的进展。 作为第一期视频&#xff0c;我打算介绍一下机器学习和Transformer在医学AI领域中的应用。 为了准备这期视频&#xff0c;总共做了24页PPT&#xff08;三部分内容&…

[代码随想录Day21打卡] 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树 总结篇

669. 修剪二叉搜索树 给定一个二叉搜索树root&#xff0c;给定一个范围[low, high]&#xff0c;修剪二叉搜索树&#xff0c;使修建后的二叉搜索树的值的范围在[low, high]内。 思想&#xff1a;当前节点的值和给定的范围之间的关系&#xff0c;如果当前节点的值大于high那么就…

apr共享内存

下载&#xff1a; Download - The Apache Portable Runtime Project 编译&#xff1a; 使用cmake-gui生成库&#xff1a; apr-1.lib aprapp-1.lib libapr-1.lib libaprapp-1.lib libapr-1.dll 在Developer PowerShell for VS 2019中&#xff1a; 执行nmake -f Makefile.win来…

借助算力云跑模型

算力平台&#xff1a;FunHPC | 算力简单易用 AI乐趣丛生 该文章只讲述了最基本的使用步骤&#xff08;因为我也不熟练&#xff09;。 【注】&#xff1a;进入平台&#xff0c;注册登录账号后&#xff0c;才能租用。学生认证&#xff0b;实名认证会有免费的算力资源&#xff0…

聚水潭与MySQL数据集成案例分享

聚水潭数据集成到MySQL的技术案例分享 在现代数据驱动的业务环境中&#xff0c;如何高效、可靠地实现不同系统之间的数据对接成为企业关注的焦点。本次案例将详细介绍如何通过轻易云数据集成平台&#xff0c;将聚水潭的数据无缝集成到MySQL数据库中&#xff0c;实现从“聚水谭…

C语言中const char *字符进行切割实现

将127.0.0.1以“”“.”来进行切割&#xff0c;实现如下&#xff1a; const char * ip "127.0.0.1";char *test new char[100];strcpy(test, ip);const char *split ".";char *final;final strtok(test, split);while (final){printf("%s\n"…

java基础知识(常用类)

一、包装类&#xff08;Wrapper) &#xff08;1&#xff09;包装类与基本数据的转换 装箱&#xff1a;基本类型->包装类型 拆箱&#xff1a;包装类型->基本类型 java5以后是自动装箱和拆箱的方式&#xff0c;自动装箱底层调用的是valueOf方法&#xff0c;比如Integer.…

【Python系列】字典灵活的数据存储与操作

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

neo4j图数据库community-5.50创建多个数据库————————————————

1.找到neo4J中的conf文件&#xff0c;我的路径是&#xff1a;D:\Program Files\neo4j-community-5.5.0-windows\neo4j-community-5.5.0\conf 这里找自己的安装路径&#xff0c; 2.用管理员模式打开conf文件&#xff0c;右键管理员&#xff0c;记事本或者not 3.选中的一行新建一…

AVL树实现

1. AVL的概念 AVL树是最先发明的⾃平衡⼆叉查找树&#xff0c;AVL是⼀颗空树&#xff0c;或者具备下列性质的⼆叉搜索树&#xff1a;它的 左右⼦树都是AV树&#xff0c;且左右⼦树的⾼度差的绝对值不超过1。AVL树是⼀颗⾼度平衡搜索⼆叉树&#xff0c; 通过控制⾼度差去控制平…