1327. 列出指定时间段内所有的下单产品 - 力扣(LeetCode)
为了实现所要求的查询,需要结合 Products
表和 Orders
表,首先通过产品的 product_id
进行联接,然后筛选出在 2020 年 2 月份下单数量不少于 100 的产品。具体步骤如下:
-
过滤日期范围:我们需要限制
Orders
表中的order_date
在 2020 年 2 月份,即从2020-02-01
到2020-02-29
。 -
聚合单元数:我们需要聚合
unit
列,计算每个产品在该日期范围内的总订单数。 -
筛选条件:我们筛选出总订单数大于或等于 100 的产品。
-
联接表:通过
product_id
将Orders
表与Products
表连接,以获取相应的产品名称。
以下是 SQL 查询语句:
SELECT p.product_name, SUM(o.unit) AS total_units
FROM Orders o
JOIN Products p ON o.product_id = p.product_id
WHERE o.order_date BETWEEN '2020-02-01' AND '2020-02-29'
GROUP BY p.product_name
HAVING SUM(o.unit) >= 100;
解释:
-
JOIN
:连接Products
表和Orders
表,基于product_id
进行匹配。 -
WHERE
:过滤出order_date
在 2020 年 2 月的订单。 -
GROUP BY
:按product_name
对产品进行分组,以便计算每个产品的总订单数。 -
HAVING
:只选择总订单数大于等于 100 的产品。
该查询会返回所有符合条件的产品名称和其在 2020 年 2 月份的总订单数量。