MySQL基础练习题13-指定日期的产品价格

news2025/1/11 6:02:37

题目:找出在 2019-08-16 时全部产品的价格,假设所有产品在修改前的价格都是 10 。

准备数据

分析数据


题目:找出在 2019-08-16 时全部产品的价格,假设所有产品在修改前的价格都是 10 。

准备数据

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

## 创建表
Create table If Not Exists Products (product_id int, new_price int, change_date date);

## 向表里插入数据
Truncate table Products;
insert into Products (product_id, new_price, change_date) values ('1', '20', '2019-08-14');
insert into Products (product_id, new_price, change_date) values ('2', '50', '2019-08-14');
insert into Products (product_id, new_price, change_date) values ('1', '30', '2019-08-15');
insert into Products (product_id, new_price, change_date) values ('1', '5', '2019-08-16');
insert into Products (product_id, new_price, change_date) values ('2', '65', '2019-08-17');
insert into Products (product_id, new_price, change_date) values ('3', '20', '2019-08-18');

输入表

 分析数据

遇到这种分组后而找其中一行,可以用开窗函数进行排序。

 第一步:

## 第一步:利用开窗函数将日期在2019-08-16之前的排序
select product_id,
                   new_price,
                   change_date,
                   row_number() over (partition by product_id order by change_date desc) num
            from Products
            where change_date <= '2019-08-16';

第二步:

## 第二步:将第一步的开窗作为一个临时表,选出最新的价格
select product_id, new_price, change_date
      from (select product_id,
                   new_price,
                   change_date,
                   row_number() over (partition by product_id order by change_date desc) num
            from Products
            where change_date <= '2019-08-16') t
      where t.num = 1) t1;

 第三步:

## 第三步:将原表左连接t1表,此时就会出现id=3的列,但是price是null。再利用ifnull()函数将null替换成10
select distinct p1.product_id, ifnull(t1.new_price, 10) as price
from Products p1
         left join
     (select product_id, new_price, change_date
      from (select product_id,
                   new_price,
                   change_date,
                   row_number() over (partition by product_id order by change_date desc) num
            from Products
            where change_date <= '2019-08-16') t
      where t.num = 1) t1
     on p1.product_id = t1.product_id;

 注意

ifnull()可以替换成coalesce()

  • COALESCE(value1, value2, ..., valueN):返回这些参数的第一个非空值。
  • IFNULL(expression_1,expression_2):只有两个参数,不是null返回第一个参数,如果是null,则返回第二个参数。

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

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

相关文章

矩阵管理系统真的好用吗

在这个短视频盛行的时代&#xff0c;每个人都可能是下一个网红。但是&#xff0c;当你的账号遍布各大平台&#xff0c;每个平台都要求你不断更新内容时&#xff0c;你可能会问&#xff1a;有没有一种工具&#xff0c;可以让这一切变得更简单&#xff1f;这就是矩阵管理系统出现…

项目中AOP相关问题

答&#xff1a;AOP是面向切面编程&#xff0c;可以通过定义方法拦截器和切入点&#xff0c;实现将一些逻辑相同的代码块抽取到同一个模块中&#xff0c;这个模块就是切面。代码可以只关注业务实现&#xff0c;不用关注那些通用逻辑。 答&#xff1a;切面&#xff0c;通用模块&…

模型部署优化综述

一、引言 模型部署优化是一个涵盖众多环节的宽泛领域,从模型训练完成到实际硬件部署,涉及多个层面的工作,且每个环节对技术的要求各异。其本质是通过减小模型大小、提高推理速度等手段,使模型能在各种硬件中成功部署并实时有效运行。 二、模型剪枝技术 (一)模型剪枝的…

Oracle基础-集合

集合&#xff1a;两个结果集的字段个数和字段类型必须相同&#xff0c;才能使用集合操作。 --UNION 并集 重复行会去重 (SELECT A,B FROM DUAL UNION SELECT C,D FROM DUAL) UNION (SELECT A,B FROM DUAL UNION SELECT E,F FROM DUAL ); --UNION ALL 全集 包含所有记录 不去重…

学校会拒绝孤独症孩子吗?揭秘专业教育机构的关怀之心

在当今社会&#xff0c;孤独症孩子的教育问题备受关注。许多家长心中都存在着一个担忧&#xff1a;学校会拒绝孤独症孩子吗&#xff1f; 事实上&#xff0c;大多数专业的教育机构都怀揣着一颗关怀之心&#xff0c;不会轻易拒绝这些特殊的孩子。 专业的教育机构深知&#xff0c;…

畅捷通如何远程访问?

随时随地能够远程访问和操作畅捷通已经成为许多职场人士的迫切需求。作为一名有着亲身经历的使用者&#xff0c;今天我就来和大家分享一下实现畅捷通远程访问的绝佳方法。 曾几何时&#xff0c;为了能在外出时也能使用畅捷通办公&#xff0c;我可谓是绞尽脑汁。尝试过多种传统方…

trino开启https

作者&#xff1a;振鹭 一、生成https证书 &#xff08;所用到的openssl和keytool命令都是linux自带的&#xff09; 配置https证书&#xff1a; &#xff08;1&#xff09;创建目录 [hdfshadoop01 hadoop]# mkdir -p /data/ssl/ [hdfshadoop01 hadoop]# cd /data/ssl/&…

【全志H616开发】Linux守护进程

文章目录 守护进程简介基本特点创建一个守护进程通常涉及以下步骤&#xff1a;进程查看指令&#xff1a; 守护进程开发代码示例&#xff1a; 开机自动启动 守护进程 简介 Linux Daemon&#xff08;守护进程&#xff09;是运行在后台的一种特殊进程。它独立于控制终端并且周期性…

C语言斜向钥匙迷宫

目录 开头程序的流程图程序的效果结尾 开头 大家好&#xff0c;我叫这是我58。今天&#xff0c;我们来看一下我用C语言编译的斜向钥匙迷宫和与之相关的一些东西。 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <Windows.h> void printmaze(co…

数据结构算法-排序(二)

插入排序 插入排序核心 假设数组中的一部数据已经排好序&#xff0c;要插入的数据和这些数据进行比较&#xff0c;直到找到合适的位置插入新数据。 插入排序步骤 插入排序主要有以下步骤构成&#xff1a; 假设有序&#xff0c;我们假设**a[0]**已经排好序待插入的数据为a[j]…

Windows蓝屏问题解决(电脑只要安装了VPN_SV独立客户端)必蓝屏

一、SERNEL_SECURITY_CHECK_FAILURE (139) 蓝屏分析 官方介绍蓝屏现象&#xff0c;官方Windows为了保护电脑&#xff0c;出现故障&#xff0c;自动蓝屏&#xff0c;避免损坏电脑的一种现象&#xff0c;别名buckcheck、蓝屏。 100%复现软件&#xff1a;天融信VPN&#xff0c;同事…

AI赋能交通治理:非机动车监测识别技术在城市街道安全管理中的应用

引言 城市交通的顺畅与安全是城市管理的重要组成部分。非机动车如自行车、电动车、摩托车等在城市交通中扮演着重要角色&#xff0c;但同时也带来了管理上的挑战。尤其是在机动车道上误入非机动车的现象&#xff0c;不仅影响交通秩序&#xff0c;还可能引发交通事故。思通数科…

C#插件 调用存储过程(输出参数类型)

存储过程 CREATE PROCEDURE [dbo].[GetSum]num1 INT,num2 INT,result INT OUTPUT AS BEGINselect result num1 num2 END C#代码 using Kingdee.BOS; using Kingdee.BOS.App.Data; using Kingdee.BOS.Core.Bill.PlugIn; using Kingdee.BOS.Util; using System; using System.…

3分钟认识KTX2纹理

作者&#xff1a;游梦 图片与纹理区别 日常沟通中通常把图片与纹理混为一谈&#xff0c;实际在图形学中&#xff0c;它俩是严格意义上的两个对象&#xff0c;主要有以下两个方面的区别&#xff1a; 文件格式&#xff1a; 图片&#xff1a;JPG、JPEG、PNG、bmp、webp、SVG等常…

gstreamer 配置+解析编解码

一. 安装gstreamer 1.1 Windows下安装 官网链接&#xff1a;https://gstreamer.freedesktop.org/download/#windows 两个都要下载。安装的时候&#xff0c;在custom选择安装路径。然后返回上一步选择complete完全安装&#xff0c;两个安装方式一样。 1.2 配置环境 将 D:\…

python3 pyside6图形库学习笔记及实践(二)

目录 前言常用控件下拉框(QComboBox)复选框(QCheckBox)单选框(QRadioButton)文本框(QTextEdit和QPlainTextEdit)滑块(QSlider) 布局常见布局控件示例布局的好处 对话框消息框(QMessageBox)输入对话框(QInputDialog)文件对话框(QFileDialog)字体对话框(QFontDialog)颜色对话框(Q…

一文精通Python print函数的N种玩法

文末赠免费精品编程资料~~ 今天我们要探索的是编程世界中最常被忽略的英雄——print函数。别看它简单&#xff0c;其实藏着不少有趣的玩法和高级技巧&#xff0c;能让你的代码更加灵活和高效。准备好了吗&#xff1f;让我们一起深入这个看似平凡却又不凡的功能。 基础篇&…

SuperGlue网络+FPN+SIFT(特征匹配)

SuperGlue网络+FPN+SIFT(特征匹配) 摘要1. FPNFPN具体实现思路2. SIFT2.1 尺度空间极值检测2.1.1 尺度空间2.1.2 高斯金字塔2.1.4 局部极值检测2.2 精确的关键点定位2.2.1 消除边缘响应2.2.2 确定关键点(极值点)方向2.3 关键点描述2.4 关键点匹配2.5 SIFT代码实现2.6 SIFT的…

贪心算法-买卖股票问题

贪心算法&#xff08;Greedy Algorithm&#xff09;是一种在每一步选择中都采取在当前状态下最好或最优&#xff08;即最有利&#xff09;的选择&#xff0c;从而希望导致结果是全局最好或最优的算法。贪心算法并不保证总是能得到全局最优解&#xff0c;但它通常能得到不错的解…

新版PyTorch:AI任务加速与Intel GPU集成

--->更多内容&#xff0c;请移步“鲁班秘笈”&#xff01;&#xff01;<--- 最近的Pytorch 2.4 推出AI任务加速&#xff0c;提供对Intel GPU的支持。为了进一步加速 AI任务&#xff0c;PyTorch 2.4现在为Intel数据中心GPU Max系列提供支持&#xff0c;该系列将Intel GPU…