SQL查询以获取购买其他客户购买的产品的客户
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL查询以获取购买其他客户购买的产品的客户相关的知识,希望对你有一定的参考价值。
我有两个实体订单和订单项订单捕获订单ID,客户ID和运输详细信息订单项详细信息将捕获订单ID,订购的产品和数量。
我想获得与他购买了相同产品的customer_id也被另外三个客户购买。
select corder.customer_id,lineitem.prod_id
from lineitem
join corder on corder.order_id=lineitem.order_id
where prod_id in(select prod_id from lineitem
group by prod_id
having count(prod_id)>2)
此查询获取客户ID和产品,我还需要仅过滤仅由其他三个客户购买产品的客户
答案
您想让四个客户购买产品。那是:
select li.prod_id
from lineitem li join
corder o
on li.order_id = o.order_id
group by li.prod_id
having count(distinct o.customer_id) >= 4;
现在,您要购买这些产品的客户。因此:
select distinct c.customer_id
from corder co join
lineitem li
on li.order_id = o.order_id
where li.prod_id in (select li.prod_id
from lineitem li join
corder o
on li.order_id = o.order_id
group by li.prod_id
having count(distinct o.customer_id) >= 4
);
以上是关于SQL查询以获取购买其他客户购买的产品的客户的主要内容,如果未能解决你的问题,请参考以下文章