本文主要是介绍【力扣白嫖日记】1045.买下所有产品的客户,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。
今日题目:
1045.买下所有产品的客户
表:Customer
列名 | 类型 |
---|---|
customer_id | int |
product_key | int |
该表可能包含重复的行。
customer_id 不为 NULL。
product_key 是 Product 表的外键(reference 列)。
表:Product
列名 | 类型 |
---|---|
product_key | int |
编写解决方案,报告 Customer 表中购买了 Product 表中所有产品的客户的 id。
返回结果表 无顺序要求 。
我那不值一提的想法:
- 首先梳理表内容,题干一共给了两张表,一张客户表,一张产品表,客户表记录了客户id,以及产品key,产品表记录了产品key
- 其次分析需求,需要找出用户买了了所有产品的客户id
- 对于买了所有产品的客户我们需要首先判断总的产品数量,也就是
select count(product_key) from Product
- 其次便可以对客户进行分组,查询产品的数量,这里注意要加distinct,因为可能会重复购买,查询条件就是购买产品的数量 = 总产品的数量
select customer_id
from Customer
group by customer_id
having count(distinct product_key) = (select count(product_key) from Product)
结果:
总结:
能运行就行。
这篇关于【力扣白嫖日记】1045.买下所有产品的客户的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!