leetcode-SQL-1607. 没有卖出的卖家

简介: leetcode-SQL-1607. 没有卖出的卖家

题目

题目链接

表: Customer

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| customer_id   | int     |
| customer_name | varchar |
+---------------+---------+
customer_id 是该表主键.
该表的每行包含网上商城的每一位顾客的信息.

表: Orders

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| order_id      | int     |
| sale_date     | date    |
| order_cost    | int     |
| customer_id   | int     |
| seller_id     | int     |
+---------------+---------+
order_id 是该表主键.
该表的每行包含网上商城的所有订单的信息.
sale_date 是顾客customer_id和卖家seller_id之间交易的日期.

表: Seller

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| seller_id     | int     |
| seller_name   | varchar |
+---------------+---------+
seller_id 是该表主键.
该表的每行包含每一位卖家的信息.

写一个SQL语句, 报告所有在2020年度没有任何卖出的卖家的名字.

返回结果按照 seller_name 升序排列.

查询结果格式如下例所示.

示例 1:

输入:
Customer 表:
+--------------+---------------+
| customer_id  | customer_name |
+--------------+---------------+
| 101          | Alice         |
| 102          | Bob           |
| 103          | Charlie       |
+--------------+---------------+
Orders 表:
+-------------+------------+--------------+-------------+-------------+
| order_id    | sale_date  | order_cost   | customer_id | seller_id   |
+-------------+------------+--------------+-------------+-------------+
| 1           | 2020-03-01 | 1500         | 101         | 1           |
| 2           | 2020-05-25 | 2400         | 102         | 2           |
| 3           | 2019-05-25 | 800          | 101         | 3           |
| 4           | 2020-09-13 | 1000         | 103         | 2           |
| 5           | 2019-02-11 | 700          | 101         | 2           |
+-------------+------------+--------------+-------------+-------------+
Seller 表:
+-------------+-------------+
| seller_id   | seller_name |
+-------------+-------------+
| 1           | Daniel      |
| 2           | Elizabeth   |
| 3           | Frank       |
+-------------+-------------+
输出:
+-------------+
| seller_name |
+-------------+
| Frank       |
+-------------+
解释:
Daniel在2020年3月卖出1次.
Elizabeth在2020年卖出2次, 在2019年卖出1次.
Frank在2019年卖出1次, 在2020年没有卖出.

解题

1、第一张表用不到,只需要用到后面两张表

2、需要用 on…and 而不能用 on…where。因为where会把s.seller_name没有’2020’行给去掉,而通过on可以保留

select s.seller_name
from Seller as s
left join Orders as o
on s.seller_id=o.seller_id and year(o.sale_date)='2020'
group by s.seller_name
having count(o.order_id)=0
order by s.seller_name;
相关文章
|
7月前
|
SQL
leetcode-SQL-262. 行程和用户
leetcode-SQL-262. 行程和用户
43 1
|
7月前
leetcode-SQL-1795. 每个产品在不同商店的价格
leetcode-SQL-1795. 每个产品在不同商店的价格
52 0
|
7月前
|
SQL 大数据 HIVE
每天一道大厂SQL题【Day06】电商购买金额统计实战
每天一道大厂SQL题【Day06】电商购买金额统计实战
84 0
|
SQL 大数据 HIVE
电商项目之交易订单明细流水表 SQL 实现(上)|学习笔记
快速学习电商项目之交易订单明细流水表 SQL 实现(上)
电商项目之交易订单明细流水表 SQL 实现(上)|学习笔记
|
7月前
|
SQL 关系型数据库 HIVE
【Hive SQL 每日一题】统计最近1天/7天/30天商品的销量
这段内容是关于SQL查询的示例,目标是统计`sales`表中最近1天、7天和30天的商品销量和销售次数。表结构包含`id`、`product_id`、`quantity`和`sale_date`字段。初始查询方法通过三个独立的子查询完成,但效率较低。优化后的查询使用了`lateral view explode`将数据炸裂,通过一次查询同时获取所有所需时间段的数据,提高了效率。示例中展示了优化前后的SQL代码及结果对比。
327 0
|
7月前
|
SQL HIVE
【Hive SQL 每日一题】统计最近7天内连续下单3日的用户量
创建了一个名为`sales`的测试表,包含`user_id`、`product_id`、`quantity`和`sale_date`字段,插入了多条销售数据。需求是找出最近7天内连续下单3天的用户数量。SQL查询通过分组和窗口函数`row_number()`检查日期连续性,最终计算满足条件的唯一用户数。示例结果显示有3名用户符合条件。
234 0
|
7月前
|
SQL
leetcode-SQL-1193. 每月交易 I
leetcode-SQL-1193. 每月交易 I
53 1
|
7月前
|
SQL 数据挖掘 数据处理
「SQL面试题库」 No_28 订单最多的客户
「SQL面试题库」 No_28 订单最多的客户
|
7月前
|
SQL
leetcode-SQL-1549. 每件商品的最新订单
leetcode-SQL-1549. 每件商品的最新订单
47 0
|
7月前
|
SQL
leetcode-SQL-1581. 进店却未进行过交易的顾客
leetcode-SQL-1581. 进店却未进行过交易的顾客
54 0