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

相关推荐
cyhysr14 分钟前
oracle 触发器与commit的先后执行顺序
数据库·oracle
czhc11400756632 小时前
Linux57配置MYSQL YUM源
数据库·mysql
半路_出家ren2 小时前
Python操作MySQL
开发语言·python·计算机网络·mysql·网络安全
等不到来世3 小时前
.net在DB First模式使用pgsql
数据库·pgsql·db first
今天你睡了嘛3 小时前
在windows中卸载mysql
mysql
文牧之3 小时前
PostgreSQL 判断索引是否重建过的方法
运维·数据库·postgresql
鱼鱼不愚与3 小时前
处理 Clickhouse 内存溢出
数据库·分布式·clickhouse
gadiaola4 小时前
MySQL从入门到精通(二):Windows和Mac版本MySQL安装教程
数据库·mysql
明天不下雨(牛客同名)4 小时前
MySQL关于锁的面试题
数据库·mysql
叫个啥网名好呢?4 小时前
Oracle 11g通过dg4odbc配置dblink连接神通数据库
数据库