代码编织梦想

力扣高频SQL 50题(基础版)第二十二题

1084 销售分析

题目说明

表: 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 (含)之间出售的商品。

任意顺序 返回结果表。

思路分析

在这里插入图片描述

实现过程

准备数据
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')
实现方式
with t1 as (select product_id from Sales where sale_date >'2019-03-31')
select p.product_id,p.product_name from Sales s,Product p where s.product_id=p.product_id and
        s.product_id not in (select product_id from Sales where sale_date not between '2019-01-21' and '2019-03-31')
结果截图

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_70882914/article/details/140761493

力扣高频 sql 50 题(基础版)_sql全连接力扣-爱代码爱编程

1.可回收且低脂的产品 答案:select product_id from Products where low_fats='Y' and recyclable='Y' 较为简单入门。 2.寻找用户推荐人 答案:select name from customer where referee_id <> 2 or refe

leetcode 69. x 的平方根-爱代码爱编程

可以使用二分查找法或牛顿迭代法来实现 LeetCode 问题 69. x 的平方根。下面是使用二分查找法和牛顿迭代法的 C++ 实现。 二分查找法 #include <iostream> class Sol

(leetcode学习)110. 平衡二叉树-爱代码爱编程

给定一个二叉树,判断它是否是 平衡二叉树 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:true 示例 2: 输入:root = [1,2,2,3,3,null,null,4,4] 输出:false 示例 3: 输入:root = [] 输出:

leetcode 17. 电话号码的字母组合-爱代码爱编程

Leetcode 17. 电话号码的字母组合 Leetcode 17. 电话号码的字母组合 一、题目描述二、我的想法三、其他人的题解 一、题目描述 给定一个仅包含数字 2-9 的字符串,返回所有它

golang | leetcode golang题解之第282题给表达式添加运算符-爱代码爱编程

题目: 题解: func addOperators(num string, target int) (ans []string) { n := len(num) var backtrack func(expr []byte, i, res, mul int) backtrack = func(expr []byte, i,

(leetcode学习)236. 二叉树的最近公共祖先-爱代码爱编程

给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 示例 1: 输入:root = [3,5,1,6,2,0,8,null,n

leetcode707 设计链表-爱代码爱编程

前言 题目: 707. 设计链表 文档: 代码随想录——设计链表 编程语言: C++ 解题状态: 代码功底不够,只能写个大概 思路 主要考察对链表结构的熟悉程度,对链表的增删改查,比较考验代码功底以及对链表的

leetcode:二叉树的中序遍历(c语言)-爱代码爱编程

1、前序遍历:根左右 2、中序遍历:左根右 3、后序遍历:左右根 1、问题概述:二叉树中序遍历 2、示例 示例 1: 输入:root = [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1

leetcode日记(52)最小路径和-爱代码爱编程

怎么最近全是这种题)又是动态规划,和上上题类似。 class Solution { public: int minPathSum(vector<vector<int>>& grid) { int m=grid.size(); int n=grid[0].size();

力扣高频sql 50题(基础版)第二十八题-爱代码爱编程

文章目录 力扣高频SQL 50题(基础版)第二十八题1174.即时食物配送II题目说明实现过程准备数据实现方式结果截图 力扣高频SQL 50题(基础版)第二十八题 1174.

力扣高频sql 50题(基础版)第十二题-爱代码爱编程

文章目录 力扣高频SQL 50题(基础版)第十二题1280. 学生们参加各科测试的次数题目说明思路分析实现过程准备数据实现方式结果截图 力扣高频SQL 50题(基础版)第十二题

力扣高频sql 50题(基础版)第二十题-爱代码爱编程

文章目录 力扣高频SQL 50题(基础版)第二十题2356.每位教师所教授的科目种类的数量题目说明思路分析实现过程准备数据实现方式结果截图 力扣高频SQL 50题(基础版)第二十题 2