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

相关推荐
曹牧1 天前
SQL:多个事务同时修改同一索引块
数据库·sql
aXin_ya1 天前
微服务第八天 Sentinel 四种分布式事务模式
java·数据库·微服务
Ruci ALYS1 天前
MySQL大小写敏感、MySQL设置字段大小写敏感
数据库·mysql
Lee川1 天前
Prisma 实战指南:像搭积木一样设计古诗词数据库
前端·数据库·后端
极创信息1 天前
信创产品认证怎么做?信创产品测试认证的主要流程
java·大数据·数据库·金融·软件工程
lzhdim1 天前
SQL 入门 12:SQL 视图:创建、修改与可更新视图
java·大数据·服务器·数据库·sql
2301_795099741 天前
让 CSS Grid 自适应容器尺寸的动态布局方案
jvm·数据库·python
FQNmxDG4S1 天前
Maven依赖管理:版本冲突解决与生命周期控制
java·数据库·maven
热爱运维的小七1 天前
告别内存溢出:ActiveMQ 性能诊断与全流程优化
数据库·it运维·activemq·devops