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,便于以后回查。

相关推荐
江团1io025 分钟前
深入解析MVCC:多版本并发控制的原理与实现
java·经验分享·mysql
island131428 分钟前
【Redis#9】其他数据结构
数据结构·数据库·redis
言之。40 分钟前
Django REST框架:ModelViewSet全面解析
数据库·python·django
-Xie-43 分钟前
Mysql杂志(十四)——Mysql逻辑架构
数据库·mysql·架构
西贝爱学习1 小时前
数据库系统概论的第六版与第五版的区别
数据库·oracle
emma羊羊3 小时前
【SQL注入】延时盲注
数据库·sql·网络安全
一叶飘零_sweeeet3 小时前
从 MySQL 到 TiDB:分布式数据库的无缝迁移与实战指南
数据库·mysql·tidb
axban3 小时前
QT M/V架构开发实战:QStandardItemModel介绍
开发语言·数据库·qt
没学上了3 小时前
数据库建立库-Qt
数据库
程序员小羊!4 小时前
大数据电商流量分析项目实战:Spark SQL 基础(四)
大数据·sql·spark