SQL SERVER 分组后使用Having Count bug小记

今天碰到一个很有意思的bug,就是分组后过滤使用Having Count,特别记录一下。

事情是这样的,由于我们有个样品子表用来按样品条码存放的表,因为每个任务对应多个样品,每个样品需要打码记录,并且可以分别处理,退库和处理(返厂,报废等),处理的样品有处理编号,我们 在查询同一个任务样品处理只是部分处理,如下SQL 语句

SELECT produce_id, deal_no

FROM dbo.produce_sub

GROUP BY produce_id, deal_no

HAVING (COUNT(*) > 1)

其中有个任务3个样品,但是只处理了1个,这样一个有处理编号,而另两个为空NULL,

本意是获取两条记录,分组没问题,但是加上HAVING Count(*) 只显示一条,这就违背意愿,

后猜测deal_no 为NULL的原因,后改

SELECT produce_id, ISNULL(deal_no, '-') AS deal_no

FROM dbo.produce_sub

GROUP BY produce_id, deal_no

HAVING (COUNT(*) > 1)

这样就没问题了

记录一下,挺有意思的小bug,便于以后回查。

相关推荐
飞Link24 分钟前
【MySQL】Linux(CentOS7)下安装MySQL8教程
linux·数据库·mysql
数据库生产实战39 分钟前
Oracle的_segment_count和3个event对高并发事务与索引性能的影响分析
数据库·oracle
程序员侠客行1 小时前
Mybatis二级缓存实现详解
java·数据库·后端·架构·mybatis
Tipriest_2 小时前
linux中的文本分接流tee命令介绍
linux·服务器·数据库
爱喝水的鱼丶2 小时前
SAP-ABAP:在SAP世界里与特殊字符“斗智斗勇”:一份来自实战的避坑指南
运维·服务器·数据库·学习·sap·abap·特殊字符
阿拉伯柠檬2 小时前
MySQL内置函数
linux·数据库·mysql·面试
小Mie不吃饭2 小时前
2025 Oracle小白零基础到入门的学习路线
数据库·oracle
计算机学姐2 小时前
基于SpringBoot的送货上门系统【2026最新】
java·vue.js·spring boot·后端·mysql·spring·tomcat
麒qiqi2 小时前
SQLite3 数据库
数据库·oracle
不吃橘子的橘猫2 小时前
NVIDIA DLI 《Build a Deep Research Agent》学习笔记
开发语言·数据库·笔记·python·学习·算法·ai