MySQL分组计数查询如何添加location列以实现按地点统计产品数量
你现有SQL的问题是分组维度不符合需求,同时SELECT子句未包含location字段,所以无法输出地点信息:你当前按product_no(产品编号)分组,统计的是每个符合条件的产品的对应计数,而你需要的是按地点统计,分组维度要换成location。
如果你的需求是统计每个地点下,单产品库存超过2件的产品总数量,可以使用以下查询,注意替换语句里的stock_num为你的库存表里实际存储库存数量的字段名:
SELECT COUNT(DISTINCT product_no) AS count_product, location FROM inventory WHERE stock_num > 2 GROUP BY location ORDER BY count_product DESC;
如果你需要保留原有语句里「产品需在至少3个地点有库存」的过滤条件,可以使用子查询先筛选出符合要求的产品,再按地点统计:
SELECT COUNT(DISTINCT i.product_no) AS count_product, i.location FROM inventory i INNER JOIN ( SELECT product_no FROM inventory GROUP BY product_no HAVING COUNT(DISTINCT location) >= 3 ) qualified_product ON i.product_no = qualified_product.product_no WHERE i.stock_num > 2 GROUP BY i.location ORDER BY count_product DESC;
内容的提问来源于stack exchange,提问作者newbieLeaf
相关产品推荐
相关产品推荐

