SQL-leetcode—1084. 销售分析 III

embedded/2025/1/22 4:38:45/

1084. 销售分析 III

表: Product

±-------------±--------+
| Column Name | Type |
±-------------±--------+
| product_id | int |
| product_name | varchar |
| unit_price | int |
±-------------±--------+
product_id 是该表的主键(具有唯一值的列)。
该表的每一行显示每个产品的名称和价格。
表:Sales

±------------±--------+
| Column Name | Type |
±------------±--------+
| seller_id | int |
| product_id | int |
| buyer_id | int |
| sale_date | date |
| quantity | int |
| price | int |
±----- ------±--------+
这个表可能有重复的行。
product_id 是 Product 表的外键(reference 列)。
该表的每一行包含关于一个销售的一些信息。

编写解决方案,报告 2019年春季 才售出的产品。即 仅 在 2019-01-01 (含)至 2019-03-31 (含)之间出售的商品。

以 任意顺序 返回结果表。

结果格式如下所示。

示例 1:

输入:
Product table:
±-----------±-------------±-----------+
| product_id | product_name | unit_price |
±-----------±-------------±-----------+
| 1 | S8 | 1000 |
| 2 | G4 | 800 |
| 3 | iPhone | 1400 |
±-----------±-------------±-----------+
Sales table:
±----------±-----------±---------±-----------±---------±------+
| seller_id | product_id | buyer_id | sale_date | quantity | price |
±----------±-----------±---------±-----------±---------±------+
| 1 | 1 | 1 | 2019-01-21 | 2 | 2000 |
| 1 | 2 | 2 | 2019-02-17 | 1 | 800 |
| 2 | 2 | 3 | 2019-06-02 | 1 | 800 |
| 3 | 3 | 4 | 2019-05-13 | 2 | 2800 |
±----------±-----------±---------±-----------±---------±------+
输出:
±------------±-------------+
| product_id | product_name |
±------------±-------------+
| 1 | S8 |
±------------±-------------+
解释:
id 为 1 的产品仅在 2019 年春季销售。
id 为 2 的产品在 2019 年春季销售,但也在 2019 年春季之后销售。
id 为 3 的产品在 2019 年春季之后销售。
我们只返回 id 为 1 的产品,因为它是 2019 年春季才销售的产品。

题解

编写解决方案,报告 2019年春季 才售出的产品。即 仅 在 2019-01-01 (含)至 2019-03-31 (含)之间出售的商品。

仅 在 2019-01-01 (含)至 2019-03-31 (含)之间出售的商品
意味着只在在 2019-01-01 (含)至 2019-03-31 (含)之间,且不再这个范围以外出售

方法一 where + 子查询

select product_id,product_name from Product where product_id in (selectproduct_idfrom Sales -- 判断 仅 在 2019-01-01 (含)至 2019-03-31 (含)之间出售where sale_date between '2019-01-01' and '2019-03-31' and product_id not in (select product_id from Sales where sale_date<'2019-01-01' or sale_date>'2019-03-31')
)

方法二 求产品的最值,如果均在范围内即可

select product_id,product_name from Product where product_id in (selectproduct_idfrom Sales -- 判断 仅 在 2019-01-01 (含)至 2019-03-31 (含)之间出售group by product_idhaving (min(sale_date) between '2019-01-01' and '2019-03-31') and (max(sale_date) between '2019-01-01' and '2019-03-31')
)

http://www.ppmy.cn/embedded/155967.html

相关文章

AWTK fscript 中的 输入/出流 扩展函数

fscript 是 AWTK 内置的脚本引擎&#xff0c;开发者可以在 UI XML 文件中直接嵌入 fscript 脚本&#xff0c;提高开发效率。本文介绍一下 fscript 中的 iostream 扩展函数 1.iostream_get_istream 获取输入流对象。 原型 iostream_get_istream(iostream) > object示例 va…

登录、注册、忘记密码、首页HTML模板

<!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>登录</title><style>body {display: fl…

Java 和php 在语法上有什么区别

从PHP转向Java开发时&#xff0c;你会遇到一些语法和概念上的差异。以下是Java和PHP在语法上的主要区别&#xff0c;以及一些需要注意的地方&#xff1a; 类型系统 PHP&#xff1a; 是一种弱类型语言&#xff0c;变量的类型是动态的&#xff0c;不需要显式声明。 可以在运行时…

【面试题】JVM部分[2025/1/13 ~ 2025/1/19]

JVM部分[2025/1/13 ~ 2025/1/19] 1. JVM 由哪些部分组成&#xff1f;2. Java 的类加载过程是怎样的&#xff1f;3. 请你介绍下 JVM 内存模型&#xff0c;分为哪些区域&#xff1f;各区域的作用是什么&#xff1f;4. JVM 垃圾回收调优的主要目标是什么&#xff1f;5. 如何对 Jav…

adb常用指令(完整版)

1、adb devices 查看是否连接到设备 2、adb install [-r] [-s] 安装app&#xff0c;-r强制&#xff0c;-s安装sd卡上 3、adb uninstall [-k] 卸载app&#xff0c;-k保留配置和参数 4、adb push 把本地文件上传设备 5、adb pull 下载文件到本地 6、cd D:\sdk\platform-tool…

STM32的DMA作用

STM32的DMA&#xff08;Direct Memory Access&#xff09;&#xff0c;即直接存储器存取&#xff0c;是一个重要的外设功能&#xff0c;它的主要作用是实现数据在外设和存储器之间或者存储器和存储器之间的高速传输&#xff0c;而无需CPU的干预。以下是对STM32的DMA作用的详细解…

【Flink系列】10. Flink SQL

10. Flink SQL Table API和SQL是最上层的API&#xff0c;在Flink中这两种API被集成在一起&#xff0c;SQL执行的对象也是Flink中的表&#xff08;Table&#xff09;&#xff0c;所以我们一般会认为它们是一体的。Flink是批流统一的处理框架&#xff0c;无论是批处理&#xff08…

Python人脸识别库DeepFace使用教程及源码解析

目录 一、DeepFace介绍 1、人脸库设计 2、DeepFace.find 3、DeepFace.verify 4、DeepFace.analyze 5、DeepFace.extract_faces 6、DeepFace.represent 7、DeepFace.stream 二、DeepFace二次开发 1、开发活体检测API 2、模型权重持久化 三、总结 一、DeepFace介绍 …