我有三个表,我正在展示相同的简化版本
客户_dim
[Cust_id] [Cust_Name]
产品_dim
[Prod_id] [Prod_Name]
Orders_fact
[ord_id] [Cust_id] [Prod_id]
我想要所有购买了每件产品的客户(甚至一个都没有丢失)
我想要一个更优雅的查询,而不是简单地将每个客户组的计数等同于prod_dim
即我不想要以下类型的查询(因为这是一个面试问题,也有一些优雅的点)
select cust_name
from customers c,
(select cust_id, count(prod_id) cnt
from order_fact
group by cust_id where cnt = (select count(prod_id) from prod_dim)) t1
where c.cust_id = t1.cust_id