题目:

Table: Product

Table: Sales

编写一个SQL查询,报告2019年春季才售出的产品。即仅在2019-01-01至2019-03-31(含)之间出售的商品。

以 任意顺序 返回结果表。

查询结果格式如下所示。

示例1:

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

建表语句:

1 DROP table if exists Product_1084, Sales_1084;
2 Create table If Not Exists Product_1084 (product_id int, product_name varchar(10), unit_price int);
3 Create table If Not Exists Sales_1084 (seller_id int, product_id int, buyer_id int, sale_date date, quantity int, price int);
4 Truncate table Product_1084;
5 insert into Product_1084 (product_id, product_name, unit_price) values ('1', 'S8', '1000'),('2', 'G4', '800'),('3', 'iPhone', '1400');
6 Truncate table Sales_1084;
7 insert into Sales_1084 (seller_id, product_id, buyer_id, sale_date, quantity, price) values ('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进行分组,如果在分组的基础上 在2019-01-01至2019-03-31之间出售数等于产品数,那么该产品就只在春季出售过。

1 select b.product_id,product_name
2 from product_1084 a
3 join sales_1084 b
4 on a.product_id = b.product_id
5 group by b.product_id,product_name
6 having sum(sale_date between '2019-01-01' and '2019-03-31') = count(*);

方法二:使用聚合函数max()和min()

将两个表联结,并以 product_id和product_name进行分组,然后在分组的基础上筛选出 当前产品的最小日期大于等于2019-01-01 且 最大日期小于等于2019-03-31,那么该产品就只在春季出售过。

1 select b.product_id,product_name
2 from product_1084 a
3 join sales_1084 b
4 on a.product_id = b.product_id
5 group by b.product_id,product_name
6 having min(sale_date) >= '2019-01-01' and max(sale_date) <= '2019-03-31';

力扣1083(MySQL)-销售分析Ⅲ(简单)的更多相关文章

  1. Python解答力扣网站题库简单版----第三讲

    1041. 困于环中的机器人 题库链接: 1041. 困于环中的机器人. 题干 在无限的平面上,机器人最初位于 (0, 0) 处,面朝北方.机器人可以接受下列三条指令之一: "G" ...

  2. 力扣算法经典第一题——两数之和(Java两种方式实现)

    一.题目 难度:简单 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数, 并返回它们的数组下标. 你可以假设每种输入只会对应一 ...

  3. 力扣485. 最大连续1的个数-C语言实现-简单题

    题目 [题目传送门] 给定一个二进制数组, 计算其中最大连续1的个数. 示例 1: 输入: [1,1,0,1,1,1] 输出: 3 解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3 ...

  4. 力扣566. 重塑矩阵-C语言实现-简单题

    题目 传送门 在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据. 给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要 ...

  5. 力扣832. 翻转图像-C语言实现-简单题

    题目 传送门 文本 给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果. 水平翻转图片就是将图片的每一行都进行翻转,即逆序.例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, ...

  6. 力扣561. 数组拆分 I-C语言实现-简单题

    题目 传送门 给定长度为 2n 的整数数组 nums ,你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从 1 到 n 的 min(a ...

  7. 力扣896. 单调数列-C语言实现-简单题

    题目 传送门 文本 如果数组是单调递增或单调递减的,那么它是单调的. 如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的. 如果对于所有 i <= j, ...

  8. 力扣算法题—069x的平方根

    实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4 输出: 2 示例 ...

  9. 力扣题解-LCP 06. 拿硬币

    题目描述 桌上有 n 堆力扣币,每堆的数量保存在数组 coins 中.我们每次可以选择任意一堆,拿走其中的一枚或者两枚,求拿完所有力扣币的最少次数. 示例 1: 输入:[4,2,1] 输出:4 解释: ...

  10. 【力扣】188. 买卖股票的最佳时机 IV

    给定一个整数数组 prices ,它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你最多可以完成 k 笔交易. 注意:你不能同时参 ...

随机推荐

  1. vscode 点击 import 的对象 from 带有 @ 不能自动跳转 - 要配置 jsconfig.json

    问题 vscode 点击 import 的对象 from 带有 @ 不能自动跳转 - 要配置 jsconfig.json 答案 根目录 创建 jsconfig.json 20220808 更新 inc ...

  2. @hook:updated="$common.lib.consoleInfo('updated')" vue外层插入监听事件

    @hook:updated="$common.lib.consoleInfo('updated')" vue外层插入监听事件

  3. c 的头文件标准格式

    前记: C语言的头文件是嵌入式系统中常用的,也是很多人没有注意的,但是写的很差的,这里给出一个经典的模板,仅供参考. 正文: 经典的格式: /***************************** ...

  4. 静态类使用@Resource注解注入

    工作中需要,简单记录一下 @Component public class AccountUtil { private static AccountIdDao accountIdDao; @Resour ...

  5. PAT 甲级考试【1003 Emergency】

    题目: As an emergency rescue team leader of a city, you are given a special map of your country. The m ...

  6. C#开发计算器类库

    C#开发计算器类库:开发中所涉及到有虚方法,继承,简单工厂等基础知识(编程借鉴'小菜变成成长记'https://www.jb51.net/article/2851.htm) 1.创建父类:计算(Ope ...

  7. View事件机制源码分析

    目录介绍 01.Android中事件分发顺序 02.Activity的事件分发机制 2.1 源码分析 2.2 点击事件调用顺序 2.3 得出结论 03.ViewGroup事件的分发机制 3.1 看一下 ...

  8. KingbaseES V8R6 等待事件之DataFileRead

    等待事件含义 IO:DataFileRead等待事件发生在会话连接等待后端进程从存储中读取所需页面,原因是该页面在共享内存中不可用或无法找到. 所有查询和数据操作(DML)操作都访问缓冲池中的页面,语 ...

  9. KingbaseES V8R6运维案例之---pg_statistic toast表故障修复

    ​ 案例说明: 数据库在日常的维护过程中,执行表结构查询语句(\d t1),如下图所示,出现"missing chunk number 0 for toast value 16259 in ...

  10. S7Comm报文详解

    S7协议是西门子公司为其S7系列PLC(可编程逻辑控制器)通信而设计的一种专用协议.S7协议主要用于西门子PLC之间的通信,以及PLC与其他设备的通信.该协议支持多种通信方式,如MPI(多点接口).P ...