如何编写满足指定系统及产品类型条件的合同聚合SQL查询
SQL语句修改方案
你需要的是两组独立的业务组合条件,直接用OR拼接两组条件即可匹配需求,不需要对System字段做全局统一筛选。
注意事项
- 请将代码中的
你的表名替换为实际使用的数据表名称 - 如果你的数据库大小写敏感,请注意
Product detail的取值要和库中存储的大小写完全匹配,比如样例中的小写gouda、green不要误写为大写开头的Gouda、Green,避免匹配失效
修改后的SQL语句
SELECT `Product detail`, COUNT(`Contract Number`) AS 已成交合同数量 FROM 你的表名 WHERE -- 匹配Supermarket系统中Maasdam、gouda品类的奶酪 (`System` = 'Supermarket' AND `Product` = 'cheese(奶酪)' AND `Product detail` IN ('gouda', 'Maasdam')) OR -- 匹配Store系统中Red、green品类的番茄 (`System` = 'Store' AND `Product` = 'Tomatoes(番茄)' AND `Product detail` IN ('Red', 'green')) GROUP BY `Product detail`
可选优化
如果需要排除重复录入的同合同号数据,可以将COUNT(Contract Number)替换为COUNT(DISTINCT Contract Number),保证统计结果更准确。
如果需要按产品+产品明细两个维度分组统计,只需要把Product字段加到SELECT和GROUP BY的部分即可:
SELECT `Product`, `Product detail`, COUNT(DISTINCT `Contract Number`) AS 已成交合同数量 FROM 你的表名 WHERE (`System` = 'Supermarket' AND `Product` = 'cheese(奶酪)' AND `Product detail` IN ('gouda', 'Maasdam')) OR (`System` = 'Store' AND `Product` = 'Tomatoes(番茄)' AND `Product detail` IN ('Red', 'green')) GROUP BY `Product`, `Product detail`
内容的提问来源于stack exchange,提问作者ybyb
相关产品推荐
相关产品推荐

