买下所有产品的客户
分析
第一步:查询每一位客户购买了多少种产品
# 查询每一位客户购买了多少种产品
select
customer_id,
count(distinct product_key)
from customer
group by customer_id;
在这里考虑到 product_key
可能有重复的情况,我们使用了 distinct
关键字
第二步:在产品表中查询所有产品的数量
# 在产品表中查询所有产品的数量
select count(*) from product;
第三步:判断哪些客户购买的产品数量与产品表中所有产品的数量一致,即购买了所有产品
# 购买了所有产品的客户id
select
customer_id
from customer
group by customer_id
having count(distinct product_key) = (select count(*) from product);
实现
# 购买了所有产品的客户id
select
customer_id
from customer
group by customer_id
having count(distinct product_key) = (select count(*) from product);
总结
此题在于对题目充分理解,先查询我们有多少产品,在把客户购买的产品数量和我们的产品数量进行比较,如果相等则是购买了所有产品的客户。
标签:customer,count,product,1045,客户,产品,买下,id,select From: https://blog.csdn.net/qq_54889094/article/details/142920532