SQL 最大连续合格次数 最大连胜记录次数 最大连败记录次数
有这样一个问题,工厂中要统计某个供应商送货检验的情况,依照其连续合格次数,决定是否免检,不使用游标或者循环,如何写这个sql。
此情景也可以用于统计连胜记录等
先要学习一下 窗函数LAG,指的是按分组和排序,取到之前(before)行的值。
假如表是这样的:

建表语句如下:
CREATE TABLE InspectionResults (ID int NOT NULL AUTO_INCREMENT,MaterialCode varchar(50) DEFAULT NULL,InspectionTime datetime DEFAULT NULL,InspectionOutcome varchar(10) DEFAULT NULL,PRIMARY KEY (ID)
)
ENGINE = INNODB,
AUTO_INCREMENT = 1,
CHARACTER SET utf8mb4,
COLLATE utf8mb4_0900_ai_ci;
按照物料,统计最大的连续合格次数,结果是:

以下是sql语句
WITH RankedResults AS ( SELECT MaterialCode, InspectionTime, InspectionOutcome, CASE WHEN InspectionOutcome = 'Y' AND (LAG(InspectionOutcome) OVER (PARTITION BY MaterialCode ORDER BY InspectionTime) IS NULL OR LAG(InspectionOutcome) OVER (PARTITION BY MaterialCode ORDER BY InspectionTime) <> 'Y') THEN 1 ELSE 0 END AS StartSequence FROM InspectionResults
),
ConsecutiveGroups AS ( SELECT MaterialCode, InspectionTime, InspectionOutcome, SUM(StartSequence) OVER (PARTITION BY MaterialCode ORDER BY InspectionTime) AS SequenceGroup FROM RankedResults WHERE InspectionOutcome = 'Y'
),
MaxConsecutiveCounts AS ( SELECT MaterialCode, SequenceGroup, COUNT(*) AS ConsecutiveCount FROM ConsecutiveGroups GROUP BY MaterialCode, SequenceGroup
)
SELECT MaterialCode, MAX(ConsecutiveCount) AS MaxConsecutivePasses
FROM MaxConsecutiveCounts
GROUP BY MaterialCode;
关键的中间步骤,请注意观察表中的数据:

WITH RankedResults AS ( SELECT MaterialCode, InspectionTime, InspectionOutcome, CASE WHEN InspectionOutcome = 'Y' AND (LAG(InspectionOutcome) OVER (PARTITION BY MaterialCode ORDER BY InspectionTime) IS NULL OR LAG(InspectionOutcome) OVER (PARTITION BY MaterialCode ORDER BY InspectionTime) <> 'Y') THEN 1 ELSE 0 END AS StartSequence FROM InspectionResults
)
SELECT MaterialCode, InspectionTime, InspectionOutcome, StartSequence, SUM(StartSequence) OVER (PARTITION BY MaterialCode ORDER BY InspectionTime) AS SequenceGroup
FROM RankedResults ;
相关文章:
SQL 最大连续合格次数 最大连胜记录次数 最大连败记录次数
有这样一个问题,工厂中要统计某个供应商送货检验的情况,依照其连续合格次数,决定是否免检,不使用游标或者循环,如何写这个sql。 此情景也可以用于统计连胜记录等 先要学习一下 窗函数LAG,指的是按分组和排…...
着色器语言GLSL学习
1 初步尝试 import { Scene, WebGLRenderer, OrthographicCamera, PlaneGeometry, ShaderMateria } from three.jsconst scene new Scene() const camera new OrthographicCamera(-1,1,1,-1,0.1, 10)const renderer new WebGLRenderer() renderer.setSize(window.innerWidt…...
C#: form 窗体的各种操作
说明:记录 C# form 窗体的各种操作 1. C# form 窗体居中显示 // 获取屏幕的宽度和高度 int screenWidth Screen.PrimaryScreen.Bounds.Width; int screenHeight Screen.PrimaryScreen.Bounds.Height;// 设置窗体的位置 this.StartPosition FormStartPosition.M…...
“尔滨”宠粉再升级!百亿像素VR冰雪盛宴
1月10日,由哈尔滨市委网信办、哈尔滨日报社主办,冰城客户端、哈尔滨新闻网承办的“激情迎亚冬,冰雪暖世界——2024年哈尔滨冰雪乐园”VR沉浸式体验产品正式上线。 如果你还没去过最近爆火出圈的“尔滨” ❄️这份哈尔滨冰雪景点VR❄️ 为你…...
redis原理(四)redis命令
目录 一、字符串命令: 二、列表命令: 三、集合命令: 四、散列命令: 五、有序集合命令: 六、redis发布与订阅命令: 七、事务命令 八、其他命令 1、排序:SORT 2、键的过期时间ÿ…...
FairGuard游戏安全2023年度报告
导 读:2023年,游戏行业摆脱了疫情带来诸多负面影响,国内游戏市场收入与用户规模双双实现突破,迎来了历史新高点。但游戏黑灰产规模也在迅速扩大,不少游戏饱受其侵扰,游戏厂商愈发重视游戏安全问题。 为帮助…...
进阶Docker4:网桥模式、主机模式与自定义网络
目录 网络相关 子网掩码 网关 规则 docke网络配置 bridge模式 host模式 创建自定义网络(自定义IP) 网络相关 IP 子网掩码 网关 DNS 端口号 子网掩码 互联网是由许多小型网络构成的,每个网络上都有许多主机,这样便构成了一个有层次的结构。 IP 地…...
Qt 状态机框架:The State Machine Framework (二)
传送门: Qt 状态机框架:The State Machine Framework (一) Qt 状态机框架:The State Machine Framework (二) 1、利用并行态避免态的组合爆炸 假设您想在单个状态机中对汽车的一组互斥属性进行建模。假设我们感兴趣的属性是干净与肮脏,以及移动与不移动。需要四个相互排斥的…...
【Redis】更改redis中的value值
今天继续进步一点点~~ 背景:今天有个前端的同事问我,能不能在Redis中他本人登录公众号的 sessionID 加上一列openID 于是我上网查了一堆在Redis里面的命令,以及不同的客户端怎么输入命令,但是后来问了下同事,他就给我…...
数据结构Java版(2)——栈Stack
一、概念 栈也是一种线性数据结构,最主要的特点是入栈顺序和出栈顺序是相反的,操作时只能从栈顶进行操作,在Java中给我们提供了一个泛型栈——Stack,其中最常用的方法有: void push(E):进栈E pop():退栈E peek():查看…...
tcpdump 用法
tcpdump 是一个用于捕获和分析网络数据包的命令行工具。它可以在网络上截取数据包,并以可读的格式输出,方便进行网络故障排除和协议分析 tcpdump -i interface # 指定网络接口: tcpdump host target_host # 过滤特定主机的流量 tcpdump port…...
JavaScript SEO:如何为搜索引擎优化 JS
什么是 JavaScript SEO? JavaScript SEO 是技术 SEO 的一部分,其重点是使使用 JavaScript 构建的网站更容易被搜索引擎抓取、呈现和索引。 常见任务包括以下内容: 优化通过 JavaScript 注入的内容正确实施懒加载遵循内部链接最佳实践预防、…...
深入探讨生产环境中秒杀接口并发量剧增、负载过高的情况该如何应对?
目录 引言 1. 实施限流措施 1.1 令牌桶算法: 1.2 漏桶算法: 1.3 使用限流框架: 2. 优化数据库操作 2.1. 索引优化 2.2. 批量操作减少交互次数: 2.3. 避免全表扫描: 2.4使用InnoDB引擎: 2.5优化事…...
C语言再学习 -- C语言搭建TCP服务器/客户端
TCP/UDP讲过~ 参看:UNIX再学习 – TCP/UDP 客户机/服务器 这里记录一下可用的TCP服务器和客户端代码。 参看:用C语言搭建TCP服务器/客户端 一、TCP服务器 #include <stdio.h> #include <sys/socket.h> #include <sys/types.h> #inc…...
企业远程控制如何保障安全?向日葵“全流程安全远控闭环”解析
远程控制为企业带来的便利与业务上的赋能是显而易见的,但很多企业依然对广泛的使用远程控制持一个观望的态度,其中最主要的原因,就是安全。 由于远程控制的原理和特性,它天然地会成为一个企业信息安全敏感领域,企业在…...
为什么需要放行回源IP
为什么需要放行回源IP 网站以“独享模式”成功接入WAF后,所有网站访问请求将先经过独享引擎配置的ELB然后流转到独享引擎实例进行监控,经独享引擎实例过滤后再返回到源站服务器,流量经独享引擎实例返回源站的过程称为回源。在服务器看来&…...
2023一带一路暨金砖国家技能发展与技术创新大赛“网络安全”赛项省选拔赛样题卷②
2023金砖国家职业技能竞赛"网络安全" 赛项省赛选拔赛样题 2023金砖国家职业技能竞赛 省赛选拔赛样题第一阶段:职业素养与理论技能项目1. 职业素养项目1. 职业素养项目2. 网络安全项目3. 安全运营 第二阶段:安全运营项目1. 操作系统安全配置与加…...
C语言:预处理详解
创作不易,来个三连呗! 一、预定义符号 C语⾔设置了⼀些预定义符号,可以直接使⽤,预定义符号也是在预处理期间处理的。 __FILE__ //进⾏编译的源⽂件 __LINE__ //⽂件当前的⾏号 __DATE__ //⽂件被编译的⽇期 __TIME__ //⽂件被编…...
一区优化直接写:KOA-CNN-BiLSTM-Attention开普勒优化卷积、长短期记忆网络融合注意力机制的多变量回归预测程序!
适用平台:Matlab 2023版及以上 KOA开普勒优化算法,于2023年5月发表在SCI、中科院1区Top顶级期刊《Knowledge-Based Systems》上。 该算法提出时间很短,目前还没有套用这个算法的文献。 同样的,我们利用该新鲜出炉的算法对我们的…...
高防IP如何有效应对网站DDOS攻击
高防IP如何有效应对网站DDOS攻击?随着互联网的发展,网站安全问题变得越来越重要。DDoS攻击作为一种常见的网络攻击方式,给网站的稳定性和可用性带来了巨大威胁。而高防IP作为一种专业的网络安全解决方案,能够有效地应对DDoS攻击&a…...
10分钟掌握 Terraform AWS EKS Blueprints 的 Karpenter 集成:实现自动节点扩展与成本优化终极指南
10分钟掌握 Terraform AWS EKS Blueprints 的 Karpenter 集成:实现自动节点扩展与成本优化终极指南 【免费下载链接】terraform-aws-eks-blueprints Configure and deploy complete EKS clusters. 项目地址: https://gitcode.com/gh_mirrors/te/terraform-aws-eks…...
Python 使用 `raise` 报错抛出异常显示 Unicode 码如何解决
在 Python 开发中,我们经常使用 raise 抛出异常来处理错误情况。但有时候,异常信息中的中文或其他非 ASCII 字符会被显示为 Unicode 转义序列(如 \u6b63\u6587),而不是直接显示中文(如“正文”)…...
百度智能云千帆AppBuilder API调用全攻略:从密钥获取到实战代码示例
百度智能云千帆AppBuilder API深度集成指南:从密钥管理到高效调用实践 在人工智能应用开发领域,快速集成可靠的AI能力已成为开发者提升效率的关键。百度智能云千帆AppBuilder作为一站式AI原生应用开发平台,其API接口的灵活调用能力让开发者能…...
SecGPT-14B完整指南:从镜像拉取、服务启动、参数调优到故障排查
SecGPT-14B完整指南:从镜像拉取、服务启动、参数调优到故障排查 1. SecGPT-14B简介 SecGPT-14B是一款专注于网络安全领域的文本生成模型,基于Qwen2ForCausalLM架构开发,拥有140亿参数规模。该模型专为安全专业人员设计,能够提供…...
抖音批量下载工具:智能反爬与分布式任务调度的技术突破
抖音批量下载工具:智能反爬与分布式任务调度的技术突破 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback supp…...
GanttProject:免费开源甘特图工具如何重塑项目管理流程
GanttProject:免费开源甘特图工具如何重塑项目管理流程 【免费下载链接】ganttproject Official GanttProject repository 项目地址: https://gitcode.com/gh_mirrors/ga/ganttproject 在项目管理工具层出不穷的今天,GanttProject以其完全免费开源…...
森利威尔SL3041B替换LM5018 100V降压3.3V5V12V恒压芯片
在工业、汽车及电池供电的电子系统中,高压降压转换器的选择往往需要在性能、可靠性与成本之间取得平衡。传统上,LM5018等进口芯片凭借其高输入电压范围和稳定的性能占据一定市场,但随着国内半导体技术的成熟,国产替代方案已具备与…...
针对C++开源项目的AI工具讲解。我将它们分为两大类,便于理解
以下是针对C开源项目的AI工具讲解。我将它们分为两大类,便于理解: C开发者使用AI工具来提升开源项目开发效率(代码补全、调试、重构、文档生成等)。用C开发的开源AI工具/框架(这些工具本身是C开源项目,常用…...
别只盯着Flag!从‘金盾信安杯’赛题看企业级安全实战:文件上传、源码泄露与RSA的坑
企业安全实战:从CTF赛题到真实威胁的防御之道 当安全工程师们在CTF竞赛中破解一道道赛题时,很少有人意识到这些看似游戏化的挑战背后,隐藏着企业安全防护体系中最致命的漏洞原型。本文将带您穿越虚拟赛场与真实战场之间的界限,揭示…...
Winhance-zh_CN:如何免费让你的Windows系统焕然一新
Winhance-zh_CN:如何免费让你的Windows系统焕然一新 【免费下载链接】Winhance-zh_CN A Chinese version of Winhance. C# application designed to optimize and customize your Windows experience. 项目地址: https://gitcode.com/gh_mirrors/wi/Winhance-zh_C…...
