MySQL第二种实现方式:现在有一个生产计划,甲乙丙3个品类共16个产品,生产时间6天,每天甲品类可以生产1张单,乙3张,丙1张,请用MySQL写出H列的效果

接上篇:链接: 现在有一个生产计划,甲乙丙3个品类共16个产品,生产时间6天,每天甲品类可以生产1张单,乙3张,丙1张,请用MySQL写出H列的效果

第二种写法:

-- 使用WITH子句创建CTE
WITH initial_data AS (SELECT 品类产品, 生产时间开始, 生产时间结束, 该品类每天可排单数量,ROW_NUMBER() OVER () AS original_orderFROM produces
),
scheduled_producet AS (SELECT 品类产品, 生产时间开始, 生产时间结束, 该品类每天可排单数量,DATE_ADD(生产时间开始, INTERVAL FLOOR(ROW_NUMBER() OVER (PARTITION BY 品类产品 ORDER BY original_order) / 该品类每天可排单数量) DAY) AS 参照排产日期,original_orderFROM initial_data
)-- 查询CTE
SELECT 品类产品, 生产时间开始, 生产时间结束, 该品类每天可排单数量, 参照排产日期
FROM scheduled_producet
ORDER BY original_order;

最终结果:
在这里插入图片描述

以下是带注释的SQL代码:

-- 第一个CTE: initial_data
-- 选择表中的所有列,并为每一行分配一个顺序编号 original_order
WITH initial_data AS (SELECT 品类产品, 生产时间开始, 生产时间结束, 该品类每天可排单数量,ROW_NUMBER() OVER () AS original_orderFROM produces
),
-- 第二个CTE: scheduled_producet
-- 根据品类产品进行分区,并按原始顺序 original_order 排序,计算参照排产日期
scheduled_producet AS (SELECT 品类产品, 生产时间开始, 生产时间结束, 该品类每天可排单数量,DATE_ADD(生产时间开始, INTERVAL FLOOR(ROW_NUMBER() OVER (PARTITION BY 品类产品 ORDER BY original_order) / 该品类每天可排单数量) DAY) AS 参照排产日期,original_orderFROM initial_data
)-- 最终查询: 从 scheduled_producet 中选择所有列,并按原始顺序 original_order 排序输出
SELECT 品类产品, 生产时间开始, 生产时间结束, 该品类每天可排单数量, 参照排产日期
FROM scheduled_producet
ORDER BY original_order;

每个部分的作用如下:
initial_data CTE:为 produces 表中的每一行分配一个顺序编号 original_order,以记录原始数据的顺序。
scheduled_producet CTE:使用 ROW_NUMBER() 窗口函数按品类产品进行分区,并根据 original_order 计算 参照排产日期。参照排产日期 的计算基于每天可排单数量。
最终查询:从 scheduled_producet CTE 中选择所需列,并按 original_order 排序,确保输出顺序与原始数据顺序一致。

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

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

相关文章

Spark参数配置不合理的情况

1.1 内存设置 💾 常见的内存设置有两类:堆内和堆外 💡 我们作业中大量的设置 driver 和 executor 的堆外内存为 4g,造成资源浪费 📉。 通常 executor 堆外内存在 executor.cores1 的时候,1g 足够了&…

UltraEditUEStudio软件最新版下载及详细安装教程

UEStudio简介: UEStudio建立在上文本编辑器UltraEdit的功能基础上,并为团队和开发人员提供了其他功能,例如深度Git集成。您可以直接在UEStudio中克隆,签出,更新,提交,推入/拉入等操作&#xff…

再回首:我的创作纪念日3周年回顾

机缘 我与CSDN三周年博客纪念 大家好!今天,我非常高兴地在这里向大家分享我与CSDN三周年博客纪念的喜悦和成果。在这三年里,我坚持不懈地在CSDN上分享了我的技术成果和心得,积累了超过2000篇的博客文章。这一路上,我…

Invalid JSON text:“Invalid value.“ at position 0 in value for column ‘user.info

你们好,我是金金金。 场景 我正在练习mybatis-plus,在插入一条数据的时候报错了,错误信息如上图 排查 排查之前我先贴一下代码 以下为数据库字段类型 在插入的过程中报错:Data truncation: Invalid JSON text: "Invalid val…

python中的函数递归

函数递归,就是一个函数,自己调用自己。 如上图所示,是一段通过定义函数,编写函数体来实现for循环。实现的是从1到n的累乘。即求n的阶乘, 如上图所示,是一段函数的递归来实现1到n的累乘操作,将1*…

opencv快速安装以及各种查看版本命令

安装opencv并查看其版本,直接通过一个可执行文件实现。 #!/bin/bashwget https://codeload.github.com/opencv/opencv/zip/3.4 -O opencv-3.4.zip && unzip opencv-3.4.zip && cd opencv-3.4 && \mkdir build && cd build &&a…

Sentinel不使用控制台基于注解限流,热点参数限流

目录 一、maven依赖 二、控制台 三、基于注解限流 四、热点参数限流 五、使用JMeter验证 一、maven依赖 需要注意,使用的版本需要和你的SpringBoot版本匹配!! Spring-Cloud直接添加如下依赖即可,baba已经帮你指定好版本了。…

海洋日特别活动—深海来客——可燃冰

深海中有一种神奇的物质,似冰又不是冰。 别看它其貌不扬,但本领不小,遇火即燃,能量巨大,可谓是能源家族的新宠。它就是被国务院正式批准列为我国第173个矿种的“可燃冰”! 可燃冰到底是个啥?它…

把chatgpt当实习生,进行matlab gui程序编程

最近朋友有个项目需要整点matlab代码,无奈自己对matlab这种工科的软件完全是外行,无奈只有求助gpt这种AI助手了。大神们告诉我们,chatgpt等的助手已经是大学实习生水平啦,通过多轮指令交互就可以让他帮你完成工作啦!所…

时隔很久运行苍穹外卖项目,出现很多错误

中途运行了很多其他项目,maven的配置文件还被我修改了一次。导致再次运行苍穹外卖项目出现很多错误。 发现没有办法,把本地的仓库删了个干干净净。然后点击clean发现报错: Cannot access alimaven (http://mavejavascript:void(0);n.aliyun.…

k8s学习--kubernetes服务自动伸缩之垂直伸缩(资源伸缩)VPA详细解释与安装

文章目录 前言VPA简介简单理解详细解释VPA的优缺点优点1.自动化资源管理2.资源优化3.性能和稳定性提升5.成本节约6.集成性和灵活性 缺点1.Pod 重启影响可用性2.与 HPA 冲突3.资源监控和推荐滞后:4.实现复杂度: 核心概念Resource Requests 和 Limits自动调…

学会python——九九乘法表+斐波那契数列(python实例一)

目录 1、认识Python 2、环境与工具 2.1 python环境 2.2 pycharm编译 2、九九乘法表 2.1 代码构思 2.2 代码示例 2.3 运行结果 3、斐波那契数列 3.1 代码构思 3.2 代码示例 3.3 运行结果 1、认识Python Python 是一个高层次的结合了解释性、编译性、互动性和面向对…

Nginx部署多web进程

1、nginx介绍 Nginx是一个高性能的、开源的、跨平台的Web服务器和反向代理服务器。它是由俄罗斯的程序员Igor Sysoev开发的,并于2004年首次公开发布。 Nginx的特点包括: 高性能:Nginx使用事件驱动的架构,能够处理大量的并发连接…

人月神话纪念珍藏版系列文章一:焦油坑

前言: 在史前文明,没有什么场景比巨兽们在焦油坑中垂死挣扎的场景更让人震撼。恐龙、猛犸象在焦油坑中挣扎。他们挣扎的越猛烈,焦油就缠绕的越紧,没有那种猛兽足够强壮或者具有足够的技巧,能够挣脱出来,它们最后都淹没在坑中。 最近几十年的大型系统编程就犹如这样的一个…

百度高级项目经理洪刘生受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 百度在线网络技术(北京)有限公司IDG智能驾驶业务部高级项目经理洪刘生先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾,演讲议题为“互联网PMO赋能战略项目集管理实战分享”。大会将于6月29-30日在北京举办…

clickHouse实现表自增ID的代码及相关逻辑

一、介绍 clickHourse表自增ID主要时两种方式: insert数据时,手动维护一个全局ID给表设置uuid字段,使用 generateUUIDv4()函数赋予默认值。 这里的话推荐手动维护一个全局的自增ID,不推荐使用UUID的方式,主要原因有…

python数据分析-ZET财务数据分析

一、公司背景 中兴通讯股份有限公司是一家总部位于中国深圳的跨国公司,致力于为全球客户提供通信设备和解决方案。公司成立于1985年,自成立以来一直致力于为客户提供创新的通信技术和服务。中兴通讯的业务涵盖多个领域,包括但不限于高端路由…

【Java面试】十七、并发篇(上)

文章目录 1、synchronized关键字的底层原理:Monitor2、synchronized相关2.1 为什么说synchronized是重量级锁2.2 synchronized锁升级之偏向锁2.3 synchronized锁升级之轻量级锁 3、Java内存模型JMM4、CAS4.1 CAS流程4.2 CAS底层实现 5、volatile关键字的理解5.1 可见…

idea打开hierarchy面板

hierarchy:查看类层级关系图 不同版本的IDEA的快捷键不一样,同时如果修改了IDEA快捷键,也可能会不一样,具体查看可通过IDEA上方的Navigate来查看navigate--Type Hierarchy,就可以看见其快捷键了,我的快捷键…

(四)React组件、useState

1. 组件 1.1 组件是什么 概念:一个组件就是用户界面的一部分,它可以有自己的逻辑和外观,组件之间可以相互嵌套,也可以复用多次。 组件化开发可以让开发者像搭积木一样构建一个完整的庞大应用 1.2 React组件 在React中&#xf…