MS Access中按条件统计各产品对应的distinct项目数量
MS Access SQL 查询方案:统计产品关联的不同项目数
核心思路
先对已售产品表(Table1)的项目-产品组合去重,再关联在售产品总表(Table2)统计每个产品对应的唯一项目数量,确保同一项目下同一产品仅计一次。
完整SQL语句
SELECT t2.Product, t2.ID, COUNT(DISTINCT t1.[Job Number]) AS 项目数量 FROM Table2 t2 LEFT JOIN (SELECT DISTINCT [Job Number], Product FROM Table1) t1 ON t2.Product = t1.Product GROUP BY t2.Product, t2.ID ORDER BY t2.Product;
语句说明
- 子查询去重:
(SELECT DISTINCT [Job Number], Product FROM Table1)过滤Table1中同一项目重复记录同一产品的情况,只保留每个项目下唯一的产品条目。 - 左连接保留所有在售产品:用
LEFT JOIN关联Table2,确保Table2中所有在售产品都会被统计,即使该产品没有销售记录(此时项目数量显示为0)。如果只需要统计有销售记录的产品,将LEFT JOIN改为INNER JOIN即可。 - 分组统计:通过
GROUP BY t2.Product, t2.ID按产品分组,COUNT(DISTINCT t1.[Job Number])统计每个产品对应的不同项目总数。
内容的提问来源于stack exchange,提问作者BluPhoenix28
相关产品推荐
相关产品推荐

