「SQL面试题库」 No_94 列出指定时间段内所有的下单产品

2023-10-16 10:41:39 浏览数 (2)

今日真题

题目介绍: 列出指定时间段内所有的下单产品 list-the-products-ordered-in-a-period

难度简单

SQL架构

表:

代码语言:javascript复制
Products
代码语言:javascript复制
 ------------------ --------- 
| Column Name      | Type    |
 ------------------ --------- 
| product_id       | int     |
| product_name     | varchar |
| product_category | varchar |
 ------------------ --------- 
product_id 是该表主键。
该表包含该公司产品的数据。

表:

代码语言:javascript复制
Orders
代码语言:javascript复制
 --------------- --------- 
| Column Name   | Type    |
 --------------- --------- 
| product_id    | int     |
| order_date    | date    |
| unit          | int     |
 --------------- --------- 
该表无主键,可能包含重复行。
product_id 是表单 Products 的外键。
unit 是在日期 order_date 内下单产品的数目。

写一个 SQL 语句,要求获取在 2020 年 2 月份下单的数量不少于 100 的产品的名字和数目。

返回结果表单的顺序无要求。

查询结果的格式如下:

``` Products 表: ------------- ----------------------- ------------------ | product_id | product_name | product_category | ------------- ----------------------- ------------------ | 1 | Leetcode Solutions | Book | | 2 | Jewels of Stringology | Book | | 3 | HP | Laptop | | 4 | Lenovo | Laptop | | 5 | Leetcode Kit | T-shirt | ------------- ----------------------- ------------------

Orders 表: -------------- -------------- ---------- | product_id | order_date | unit | -------------- -------------- ---------- | 1 | 2020-02-05 | 60 | | 1 | 2020-02-10 | 70 | | 2 | 2020-01-18 | 30 | | 2 | 2020-02-11 | 80 | | 3 | 2020-02-17 | 2 | | 3 | 2020-02-24 | 3 | | 4 | 2020-03-01 | 20 | | 4 | 2020-03-04 | 30 | | 4 | 2020-03-04 | 60 | | 5 | 2020-02-25 | 50 | | 5 | 2020-02-27 | 50 | | 5 | 2020-03-01 | 50 | -------------- -------------- ----------

Result 表: -------------------- --------- | product_name | unit | -------------------- --------- | Leetcode Solutions | 130 | | Leetcode Kit | 100 | -------------------- ---------

2020 年 2 月份下单 product_id = 1 的产品的数目总和为 (60 70) = 130 。 2020 年 2 月份下单 product_id = 2 的产品的数目总和为 80 。 2020 年 2 月份下单 product_id = 3 的产品的数目总和为 (2 3) = 5 。 2020 年 2 月份 product_id = 4 的产品并没有下单。 2020 年 2 月份下单 product_id = 5 的产品的数目总和为 (50 50) = 100 。 ```

代码语言:javascript复制
sql
select product_name,sum(unit) unit 
from Orders o left join Products p
on o.product_id=p.product_id
where date_format(order_date,'%Y-%m')='2020-02' 
group by product_name
having unit>=100
  • 已经有灵感了?在评论区写下你的思路吧!

0 人点赞