题目:

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. Prettier 和 ESLint 冲突解决方案 eslint-config-prettier eslint-plugin-prettier

    划重点 eslint-config-prettier 禁用 eslint 冲突配置 eslint-plugin-prettier Prettier先格式化 (默认是先eslint格式化,再Pretti ...

  2. 🚀🚀🚀Elasticsearch 主副分片切换过程中对业务写入有影响吗

    先说下结论,只要集群中的工作节点过半,有候选的master节点,挂掉的节点中不同时包含索引的主分片和副分片,那么ES是可以做到让业务无感知的进行主副分片切换的. 蓝胖子会先讲解下ES集群写入文档的原理 ...

  3. axios封装(处理token跟get中Content-Type的请求问题)

    axios封装 import axios from 'axios' //引入axios import store from '@/store/index' //引入store //此处引入router ...

  4. KingbaseES kdb_database_link客户端字符集导致的乱码问题

    前言 关于我们经常见到的字符集乱码问题,很可能因为数据库服务器端的操作系统字符集和客户端字符集不一致导致的. 当我们通过kdb_database_link插件访问oracle数据库出现乱码,只需要调整 ...

  5. windows系统设置状态栏时间显示读秒

    windows系统设置状态栏时间显示读秒 要实现的效果如下图: 一.打开注册表 WIN+R输入[cmd]之后输入[regedit]回车 二.修改注册表 在注册表地址栏输入: HKEY_CURRENT_ ...

  6. Android实现简单登录界面

    LoginActivity 1 package com.example.myapplication; 2 3 import android.os.Bundle; 4 import android.vi ...

  7. Python字典遍历

    1 def dict_test(): 2 #初始化字典 3 dict= {"a1":"1","a2":"2"," ...

  8. WPF中封装一个自己的MessageBox

    前言 在WPF应用程序开发中,我们可以借助其强大灵活的设计能力打造出绚丽而富有创意的用户界面.然而,与这种高度定制化的界面相比,标准MessageBox却显得有些原始和古老.它的外观与现代.绚丽的应用 ...

  9. k-均值聚类算法 Primary

    目录 案例--区分好坏苹果(有Key) 案例--自动聚类(无Key) k-均值聚类算法(英文:k-means clustering) 定义: k-均值聚类算法的目的是:把n个点(可以是样本的一次观察或 ...

  10. 3D Object Detection Essay Reading 2024.04.05

    EMIFF 论文:https://arxiv.org/abs/2303.10975 代码:https://github.com/Bosszhe/EMIFF ​ 本文提出了一种新的基于摄像机的三维检测框 ...