如何获取仅含单个商品或指定itemnum的ordernum?
订单商品筛选SQL解决方案
1. 获取仅包含单个商品的订单号(ordernum)
通过分组统计每个订单下的商品数量,筛选出商品数量为1的订单:
SELECT ordernum FROM your_table_name -- 替换成你的实际表名 GROUP BY ordernum HAVING COUNT(DISTINCT itemnum) = 1;
说明:如果同一个订单不会重复出现同一个itemnum,用
COUNT(*)替代COUNT(DISTINCT itemnum)也可以,结果一致。
2. 获取仅包含itemnum=123456的订单号(ordernum)
有两种常用写法,按需选择:
写法一:分组筛选
先分组统计订单的商品数量,同时确保唯一的商品是123456:
SELECT ordernum FROM your_table_name -- 替换成你的实际表名 GROUP BY ordernum HAVING COUNT(DISTINCT itemnum) = 1 AND MAX(itemnum) = 123456;
写法二:子查询排除法
先找出所有包含123456的订单,再排除那些还包含其他商品的订单:
SELECT ordernum FROM your_table_name -- 替换成你的实际表名 WHERE itemnum = 123456 AND ordernum NOT IN ( SELECT ordernum FROM your_table_name WHERE itemnum != 123456 );
示例表参考:
内容的提问来源于stack exchange,提问作者jinxz02
相关产品推荐
相关产品推荐

