leecode 数据库:1084. 销售分析III

news2024/11/26 4:43:39

导入数据:

Create table If Not Exists Product (product_id int, product_name varchar(10), unit_price int);
Create table If Not Exists Sales (seller_id int, product_id int, buyer_id int, sale_date date, quantity int, price int);
Truncate table Product;
insert into Product (product_id, product_name, unit_price) values ('1', 'S8', '1000');
insert into Product (product_id, product_name, unit_price) values ('2', 'G4', '800');
insert into Product (product_id, product_name, unit_price) values ('3', 'iPhone', '1400');
Truncate table Sales;
insert into Sales (seller_id, product_id, buyer_id, sale_date, quantity, price) values ('1', '1', '1', '2019-01-21', '2', '2000');
insert into Sales (seller_id, product_id, buyer_id, sale_date, quantity, price) values ('1', '2', '2', '2019-02-17', '1', '800');
insert into Sales (seller_id, product_id, buyer_id, sale_date, quantity, price) values ('2', '2', '3', '2019-06-02', '1', '800');
insert into Sales (seller_id, product_id, buyer_id, sale_date, quantity, price) values ('3', '3', '4', '2019-05-13', '2', '2800');

Table: Product

+---------------+-----------+
| Column Name  | Type    |
+---------------+-----------+
| product_id   | int     |
| product_name | varchar  |
| unit_price   | int     |
+---------------+-----------+
Product_id是该表的主键。
该表的每一行显示每个产品的名称和价格。

Table: Sales

+---------------+----------+
| Column Name  |Type   |
+---------------+----------+
| seller_id    | int   |
| product_id  | int     |
| buyer_id    | int    |
| sale_date   | date    |
| quantity    | int    |
| price       | int   |
+------ ---------+---------+
这个表没有主键,它可以有重复的行。
product_id 是 Product 表的外键。
该表的每一行包含关于一个销售的一些信息。

编写一个SQL查询,报告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年春季之后销售。
我们只退回产品1,因为它是2019年春季才销售的产品。

解题思路

筛选在合法日期里面和不在合法日期里面,用distinct去重

#在合法日期里面
select distinct product_id
from Sales
where sale_date between '2019-01-01' and '2019-03-31'

#不在合法日期里面
select distinct product_id
from Sales
where sale_date not between '2019-01-01' and '2019-03-31'

用 not in 筛选出合法日期id不在非法日期表当中,再与Product表联查

代码:

select t.product_id,product_name
from (
    select distinct product_id
    from Sales
    where sale_date between '2019-01-01' and '2019-03-31'
    and product_id not in (
        select distinct product_id
        from Sales
        where sale_date not between '2019-01-01' and '2019-03-31'
    )
) t,Product p
where t.product_id = p.product_id;

执行结果 

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/sales-analysis-iii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/760319.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Elasticsearch中查询性能优化

Elasticsearch是一种流行的搜索引擎和分布式文档存储解决方案,它的高效性能和可伸缩性使其成为许多应用程序的首选存储引擎。在工作中,优化Elasticsearch的检索性能是一个非常重要的任务,可以大大提高应用程序的响应速度和用户体验。下面我们…

0131 物理层2

目录 2.物理层 2.2传输介质 2.3物理层设备 2.2,2.3部分习题 2.物理层 2.2传输介质 2.3物理层设备 2.2,2.3部分习题 1.利用一根同轴电缆互连主机构成以太网,则主机间得通信方式为() A.全双工 B.半双工 …

PTA天梯赛的赛场安排

天梯赛使用 OMS 监考系统,需要将参赛队员安排到系统中的虚拟赛场里,并为每个赛场分配一位监考老师。每位监考老师需要联系自己赛场内队员对应的教练们,以便发放比赛账号。为了尽可能减少教练和监考的沟通负担,我们要求赛场的安排满…

401 - 未授权: 由于凭据无效,访问被拒绝。

这种原因通常因为将目标文件夹建立在C盘(系统盘),系统盘权限比较高。 解决方案:将 C:\Windows\Temp 设置 User 写权限即可。

简单版本视频播放服务器V2

简单版本视频播放服务器V2 一直想做个家用版本的家庭影院,通过这个服务器可以给电脑,平板,手机等设备提供直接播放电影的作用,通过浏览器就是可以访问电脑里面的视频,实现简单的家庭版本服务了。 备注注意 &#xff1a…

基于linux下的高并发服务器开发(第二章)- 2.4 父子进程虚拟地址空间情况

01 / 进程创建 #include <sys/types.h> #include <unistd.h> pid_t fork(void); 函数的作用&#xff1a;用于创建子进程。 返回值&#xff1a; fork()的返回值会返回两次。一次是在父进程中&#xff0c;一次是在子进程中。 在父进程中返回…

【活动回顾】Data + AI 时代下的云数仓设计 @Qcon

此前&#xff0c;由 InfoQ 中国举办的 QCon 全球软件开发大会在广州圆满落幕。本次大会有近百位国内外技术大咖现场分享前沿技术案例与创新实践&#xff0c;共有十二个专题&#xff0c;近五十余场分享。Databend Cloud 联合创始人张雁飞受邀参与了此次技术盛宴&#xff0c;并在…

SpringBoot整合gRPC - proto3 -- 简单明了

项目结构 pom引入(parent中引入即可) <properties><net-devh-grpc.version>2.14.0.RELEASE</net-devh-grpc.version><os-maven-plugin.version>1.6.0</os-maven-plugin.version><protobuf-maven-plugin.version>0.5.1</protobuf-mave…

基于flask框架的用户注册页面实例

文件框架 app.py文件 from flask import Flask, render_template, requestapp Flask(__name__)app.route(/) def index():return register()# 申请注册页面 app.route(/register, methods["GET"]) def register(): # put applications code herereturn render_tem…

element-plus源码学习后,我了解到多种多样的写法

文章封面来自于深圳湾桥&#xff0c;很漂亮&#xff01; 本文是阅读源码之后&#xff0c;学习到一些新写法&#xff0c;平常业务开发也可以用起来。在我看来&#xff0c;阅读源码&#xff0c;不但能知道该框架的底层原理&#xff0c;出现bug时&#xff0c;可以快速排查和修复&…

如何使用unittest批量管理Python接口自动化测试用例?

我们日常项目中的接口测试案例肯定不止一个&#xff0c;当案例越来越多时我们如何管理这些批量案例&#xff1f;如何保证案例不重复&#xff1f;如果案例非常多&#xff08;成百上千&#xff0c;甚至更多&#xff09;时如何保证案例执行的效率&#xff1f;如何做&#xff08;批…

如何记住表格列宽,供下次调用,来提升用户操作体验?

如何让系统记住用户每次拖动表格后的列宽&#xff0c;下次表格初始化就可以直接用该列宽&#xff0c;来显示表格的每一个列。每个用户的使用习惯不一样&#xff0c;和使用的功能不一样&#xff0c;即使是同一套系统&#xff0c;只要用户不同&#xff0c;就有可能需要不同的列宽…

【全局异常】返回值通过【枚举】的形式返回

&#x1f4da;目录 需求创建抽象类创建业务枚举使用枚举升级简单的方式实现:使用注解方式实现: 需求 后台程序发生异常&#xff0c;通过全局的异常类使用枚举的方式把错误信息返回给前端。 全局异常类处理方式&#xff1a; 改造前使用 改造后使用枚举传递&#xff1a; 创建抽象…

高楼电脑端+黑金手机端个人引导页HTML源码

https://wwwf.lanzout.com/ipAfg12n5y4f 二、黑金主题网址导航 https://wwwf.lanzout.com/ieSVB12n5y2d

C语言文件操作【超详解】

目录 1.为什么使用文件 2.什么是文件 2.1程序文件 2.2数据文件 2.3文件名 3.文件的打开和关闭 3.1文件指针 3.2文件的打开和关闭 3.2.1fopen函数 3.2.2fclose函数 4.文件的顺序读写 4.1顺序读写函数介绍 4.1.1 fputc、fgetc和fputs、fgets 4.1.2fprintf、fscanf&…

装饰(Decorator)模式

目录 动机使用场景参与者协作效果实现相关模式应用和思考类图 装饰模式是对象结构型模式&#xff0c;动态地给一个对象添加一些额外的职责。就增加的功能来说装饰器模式相比生成子类更为灵活。 动机 有时候需要给某个对象而不是整个类添加一些功能&#xff0c;使用继承也可以&…

【SDOF振荡器的非线性-非弹性多轴时间响应分析】用于SDOF振荡器非线性非弹性时程分析的鲁棒性分析研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

经典指针笔试题你会了嘛

作者简介&#xff1a;დ旧言~&#xff0c;目前大一&#xff0c;现在学习Java&#xff0c;c&#xff0c;Python等 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 望小伙伴们点赞&#x1f44d;收藏✨加关注哟&#x1f495;&#x1f495; 指针和数组笔试题 &…

【Linux】多线程 之 POSIX信号量

文章目录 1. 概念2. 信号量的工作机制3. 认识接口sem_init ——初始化信号量sem_destroy——销毁信号量sem_wait ——申请信号量sem_post ——释放信号量 4. 基于环形队列的生产消费模型原理解析代码代码解析ringqueue类构造析构push ——生产pop ——消费 代码实现Ringqueue.h…

精通Skia引擎,发挥应用程序中高性能图形的潜力

Skia是由Google开发的一个开源的2D图形库。它提供了丰富的图形绘制、图像处理和渲染功能&#xff0c;适用于多个平台&#xff0c;包括操作系统、浏览器和移动设备等。Skia主要用于处理2D图形的绘制、文字渲染、图像处理和用户界面的呈现。 特点和功能&#xff1a; 高性能&…