MySQL基础练习题7-销售分析

news2024/9/21 8:01:42

题目:报告 2019年春季 才售出的产品。即 仅 在 2019-01-01 (含)至 2019-03-31 (含)之间出售的商品。

准备数据

分析数据

方法一:group by + having

第一步:先找到要求的列

第二步:找出2019-01-01 (含)至 2019-03-31 (含)之间出售的商品

方法二:嵌套

第一步 :找出销售产品的id

第二步:找出不在这个时间之间的产品id

第三步:结合


题目:报告 2019年春季 才售出的产品。即 仅 在 2019-01-01 (含)至 2019-03-31 (含)之间出售的商品。

准备数据

## 创建库
create database db;
use database;

## 创建产品表(product)
Create table If Not Exists Product (product_id int, product_name varchar(10), unit_price int);

## 创建销售表(sales)
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');

输入:

产品表

销售表

分析数据

  • product_id = 1 的产品仅在2019春季销售
  • product_id = 2 的产品在2019春季销售,也在2019夏季销售
  • product_id = 3的产品仅在2019夏季销售

要求仅 在 2019-01-01 (含)至 2019-03-31 (含)之间出售的商品。因此我们只返回 product_id = 1的产品。

方法一:group by + having

第一步:先找到要求的列

## 1.找到要求的列
select s.product_id , p.product_name
from Sales as s
left join Product as p
on s.product_id = p.product_id
group by s.product_id, p.product_name;  ## 根据product_id、product_name进行了分组

第二步:找出2019-01-01 (含)至 2019-03-31 (含)之间出售的商品

## 2.找到在 2019-01-01 (含)至 2019-03-31 (含)之间出售的商品。
select s.product_id , p.product_name
from Sales as s
left join Product as p
on s.product_id = p.product_id
group by s.product_id, p.product_name
having min(s.sale_date) >= '2019-01-01' and max(s.sale_date) <= '2019-03-31';

说明:因为product_id = 2和product_id = 3不符合,所以要排除。

 

 创造一个条件排除,用到了min()和max(),只要不符合其中一项就可以排除。

因为product_id = 2的max(sale_date)>2019-03-31,排除;product_id = 3只有一个时间min(sale_date)> 2019-03-31且max(sale_date)>2019-03-31,排除。

注意:为什么不使用where条件,聚合函数不能直接在where子句中使用。并且在select中查看聚合列,必须要group by 聚合列(或者主键)。

方法二:嵌套

第一步 :找出销售产品的id

 第二步:找出不在这个时间之间的产品id

 第三步:结合

## 结合,选择不是2和3,但是在(1,2,3)里边,就只有id为1
select product_id,product_name from product
         where product_id not in
               (select product_id from sales where sale_date not between '2019-01-01' and '2019-03-31')
and product_id in (select product_id from sales);

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

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

相关文章

手持式洗地机该怎么选购?多款性能超好的洗地机推荐

传统的清洁方式&#xff0c;不仅费时费力&#xff0c;而且清洁效果也真的很一般&#xff0c;很多地方都清洁不到位。好在洗地机的出现很好的解决了这些问题&#xff0c;因为一款好的洗地机不仅能够让家务清洁事半功倍&#xff0c;而且还能有效除菌&#xff0c;地板更干净卫生&a…

某RED书旋转验证码识别(一)

注意,本文只提供学习的思路,严禁违反法律以及破坏信息系统等行为,本文只提供思路 本文的验证码网址如下,使用base64解码获得 因为旋转验证码能够处理的方式实在太多了,我将以处理的难度和方式依次讲解最简单到最难,到精度最高的方式,本文还是延续之前使用梯度计算的方式…

视频编辑SDK提供配套DEMO源码,提高开发效率

面对日益增长的视频制作需求&#xff0c;如何快速、高效且低成本地生产出专业级视频&#xff0c;成为众多企业面临的共同挑战。美摄科技&#xff0c;作为视频编辑技术的领航者&#xff0c;携其强大的视频编辑SDK及配套DEMO源码&#xff0c;为企业视频创作带来了革命性的解决方案…

Ubuntu系统下,截图软件(飞书,flameshot等)无法正常截图与编辑

Ubuntu系统下&#xff0c;截图软件&#xff08;飞书&#xff0c;flameshot等&#xff09;无法正常截图与编辑 问题描述&#xff1a; ubuntu系统下&#xff0c;飞书&#xff08;设置截图快捷键&#xff09;&#xff0c;flameshot等截图工具无法正常使用&#xff0c;每次按快捷…

iOS ------ 持久化

一&#xff0c;数据持久化的目的 1&#xff0c;快速展示&#xff0c;提升体验 已经加载过的数据&#xff0c;用户下次查看时&#xff0c;不需要再次从网络&#xff08;磁盘&#xff09;加载&#xff0c;直接展示给用户 2.节省用户流量 对于较大的资源数据进行缓存&#xff…

2024小卷Spring Boot3.0教程思维导图整理

这是2024年小卷整理的最新spring Boot3.0实战教程的思维导图&#xff0c;后续将开始更新相关的笔记&#xff0c;欢迎新手朋友加入一起学习&#xff0c;如果您感兴趣不妨点赞关注下&#xff0c;您的支持是我更新的动力~加油&#xff01;

【视觉SLAM】 G2O库编写步骤介绍

介绍G2O&#xff0c;并阐述基本使用方法。 G2O以稀疏优化器&#xff08;SparseOptimizer&#xff09;为核心&#xff0c;分为图的构建与求解器构建两部分&#xff0c;分别对应该图的上下两部分。 G2O编程步骤共分七步&#xff0c;如图所示&#xff1a; 构建求解器 1、创建一…

英飞凌 TC3XX单片机HSM内核开发-Secure Boot(七)

HSM UCB配置 UCB_HSM_ORIG 和 UCB_HSM_COPY配置描述 HSMCOTP保护配置了专用HSM闪存扇区的HSM独占和一次性可编程&#xff08;OTP&#xff09;保护。它提供了通过两个配置集增量添加此类保护到闪存扇区的可能性&#xff1a; 从UCB_HSMCOTP0_ORIG和UCB_HSMCOTP0_COPY派生的HSM…

day8 Excel教程——利用数据验证规范单元格输入!(超多干货)

day8 Excel教程——利用数据验证规范单元格输入! 本章目录 day8 Excel教程——利用数据验证规范单元格输入!1. 整数,小数和文本长度1.1 限制用户输入1(最小)和10(最大)之间的数字1.2 限制用户应输入小于或等于3%的小数(百分比)值1.3 限制用户应输入文本长度为18位的身份…

【卫星载荷之QF项目-001】Vivado 2018.3安装

1.简介 Vivado 是 FPGA 厂商赛灵思公司&#xff08;Xilinx&#xff09;于 2012 年起发布的集成设计环境。Vivado2018.3 是 2018 年 Xilinx 推出的 Vivado 最后一个版本&#xff0c;相对稳定。 2.软件下载 网上自己去官网即可获取安装资源包。 3.软件安装 解压缩安装包&…

来未来面试真题:根据树形表输出树形结构

根据以下所给代码补充完printNode方法&#xff0c;要求输出如下形式的树形结构 package com.ting.sort;import java.util.ArrayList; import java.util.HashMap; import java.util.List;public class Menu {static class Node{Integer id;Integer parentId;String name;Node(In…

【PyTorch】多对象分割项目

对象分割任务的目标是找到图像中目标对象的边界。实际应用例如自动驾驶汽车和医学成像分析。这里将使用PyTorch开发一个深度学习模型来完成多对象分割任务。多对象分割的主要目标是自动勾勒出图像中多个目标对象的边界。 对象的边界通常由与图像大小相同的分割掩码定义&#xf…

【MySQL进阶】事务隔离级别 MVCC

目录 MySQL事务隔离级别 1. 读未提交&#xff08;Read Uncommitted&#xff09; 2. 读已提交&#xff08;Read Committed&#xff09; 3. 可重复读&#xff08;Repeatable Read&#xff09;(默认隔离级别) 4. 串行化&#xff08;Serializable&#xff09; 表格总结 MVCC …

C++栈和队列(容器适配器)

目录 1.什么是适配器&#xff1f; 2.栈(stack) 3.队列(queue) 4.双端队列(deque) 5.优先级队列(priority_queue) 1.什么是仿函数&#xff1f; 2.仿函数有什么用&#xff1f; 3.优先级队列(priority_queue) 1.什么是适配器&#xff1f; 我们之前实现栈和队列&#xff0…

QTCreate中使用git进行代码的备份

一开始使用QTCreate设计UI时&#xff0c;都是手动保存&#xff0c;后面觉得应该升级一下自己的技术栈&#xff0c;把git工具学了一些&#xff0c;摸索两天。首先&#xff0c;git是一个版本控制工具&#xff0c;正常开发需要一个master和一个你自己需要的分支&#xff0c;在分支…

批量下载 B 站 视频的工具 downkyi

批量下载 B 站 视频的工具 downkyi 亲测好用 图片&#xff1a; 下载地址&#xff1a; https://github.com/leiurayer/downkyi

SQL Server Profiler 只查看当前操作的语句

1.打开Sql Server Manage Studio&#xff0c;登录->工具->SQL Server Profiler->链接 点击事件选择 点击列筛选器 点击spid 输入对应的spid 如果不知道你的spid是多少的话&#xff0c;你可以先不筛选&#xff0c;直接运行&#xff0c;然后开启跟踪再运行一个独特的…

【项目管理】项目经理管理表单(及全套资料)

PM项目管理模板 甘特图 OKR周报 团队任务 工作总结

有没有比较好用的家用洗地机推荐?一文搞懂洗地机哪种牌子好

如今洗地机在我们家庭清洁中&#xff0c;已经很常见了&#xff0c;它可以让我们快速的完成地面清洁的工作&#xff0c;无需我们手动去清洗滚布&#xff0c;大大的节省了我们清洁时间&#xff0c;而且清洁效果也更加到位。但是目前市面上的洗地机型号多到让人眼花缭乱&#xff0…