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

相关推荐
wei_shuo5 分钟前
Oracle数据库迁移至KingbaseES:完整实战指南
数据库·oracle
磊磊cpp16 分钟前
Ubuntu 22.04 离线安装教程(本地 APT 仓库 offline-repo)
数据库·ubuntu·postgresql
坠金1 小时前
图数据库neo4j自建及使用
数据库·neo4j
bbq粉刷匠1 小时前
MySQL 聚合函数&分组&联合查询
数据库·mysql
赵渝强老师2 小时前
【赵渝强老师】国产金仓数据库的数据库对象
数据库·postgresql·oracle·oceanbase·国产数据库
霖霖总总2 小时前
[小技巧43]MySQL MVCC 深度解析:快照读 vs 当前读
数据库·mysql
使者大牙3 小时前
【单点知识】 Python装饰器介绍
开发语言·数据库·python
数智工坊4 小时前
【操作系统-文件管理】
数据结构·数据库
oioihoii4 小时前
Oracle迁移KingbaseES实战
数据库·oracle
wniuniu_4 小时前
增加依据。。
服务器·网络·数据库