带out intersect操作的sql查询

cwdobuhd  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(306)

查找大西洋地区曾经购买过“表”的所有客户以及购买的表数(显示客户名称,没有购买的表)
我的sql不接受intersect操作

select c.Customer_name,count(m.Prod_id) from cust_dimen c,market_fact m,prod_dimen p where m.Cust_id=c.Cust_id and p.Prod_id=m.Prod_id and Region='ATLANTIC' group by m.prod_id
intersect
select c.Customer_name,count(m.Prod_id) from  cust_dimen c,market_fact m,prod_dimen p where m.Cust_id=c.Cust_id and p.Prod_id=m.Prod_id and p.Product_Sub_Category='TABlES' group by m.Prod_id;

你能不相交地修改吗

0x6upsns

0x6upsns1#

我不知道在哪里 intersect 在这个问题上真的很有帮助。我会用 group by . 这些条件只是过滤条件:

select c.Customer_name, count(m.Prod_id)
from cust_dimen c join
     market_fact m
     on m.Cust_id = c.Cust_id join
     prod_dimen p 
     on p.Prod_id = m.Prod_id 
where c.Region = 'ATLANTIC' and p.Product_Sub_Category = 'TABlES'
group by c.Customer_name;

一句忠告:不要在句子中使用逗号 FROM 条款。始终使用适当的、明确的、标准的 JOIN 语法。

相关问题