【SQL】指定日期的产品价格(IFNULL函数)

news2024/11/17 13:20:13

题目描述

leetcode题目:指定日期的产品价格
在这里插入图片描述
在这里插入图片描述

思路

  1. 找出所有的产品的指定的日期的价格;
  2. 若找不到某个产品的更改日期,则将该产品价格设置为10。

关键点:

  1. if没有16号的,怎么找到前一个日期的?==> 日期小于16号(条件1)的最大日期(条件2)。
  2. 如果没有对应日期的,则设置为10 ==> IFNULL()函数

细节详见【官方题解】

select distinct A.product_id, IFNULL(B.new_price, 10) as price 
from Products A
left join (
    select product_id, new_price
    from Products
    where (product_id, change_date) in (
        select product_id, max(change_date)
        from Products
        where change_date <= '2019-08-16'
        group by product_id
        )
    ) B
on A.product_id = B.product_id

记录自己写的错误点

-- select product_id, new_price, max(change_date)
-- from Products
-- where change_date <= '2019-08-16'
-- group by product_id 
-- '''
-- | product_id | new_price | max(change_date) |
-- | ---------- | --------- | ---------------- |
-- | 1          | 20        | 2019-08-16       |
-- | 2          | 50        | 2019-08-14       |
-- '''
-- ERROR: 其中new_price为20 错误,是因为主键是 product_id 和 change_date,而不是主键是product_id;
-- 所以要通过(product_id, change_date) 定位到对应的new_price, 再加一层嵌套。

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

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

相关文章

flutter弹窗输入,Android学习的三个终极问题及学习路线规划

题库非常全面包括&#xff1a; Android基础知识: 基本涵盖Android所有知识体系&#xff0c;四大组件&#xff0c;Fragment,WebView,事件分发&#xff0c;View绘制…Java基础知识&高阶知识点: 基础部分不谈了&#xff0c;高阶部分&#xff1a;泛型&#xff0c;反射&#xff…

白皮书发布|超融合运行 K8s 的场景、功能与优势

目前&#xff0c;不少企业都使用虚拟化/超融合运行 Kubernetes 和容器化应用。一些用户可能会有疑惑&#xff1a;既然 Kubernetes 可以部署在裸金属上&#xff0c;使用虚拟化不是“多此一举”吗&#xff1f; 在电子书《IT 基础架构团队的 Kubernetes 管理&#xff1a;从入门到…

java 面试题总结

1锁粗化和锁消除&#xff0c;锁膨胀和锁升级的区别。 https://www.cnblogs.com/xuxinstyle/p/13387778.html .无锁 < 偏向锁 < 轻量级锁 < 重量级锁 &#xff0c;说的时候不要忘记说无锁状态 2.Map 的实现&#xff0c;线程安全的实现 1、ConcurrentHashMap在JDK 1.7…

【HarmonyOS】Dev Eco Studio4.0开发工具下载SDK10

目录 点击创建项目 选择空项目&#xff08;OpenHarmony&#xff09;&#xff0c;点击Next 此时SDK为10 点击 configure OpenHarmony SDK 创建一个新目录文件存放SDK&#xff0c;不要跟之前的SDK文件目录重合&#xff0c;点击Next 点击Next 勾选Accept&#xff0c;点…

【2024.03.05】定时执行专家 V7.1 发布 - TimingExecutor V7.1 Release

目录 ▉ 软件介绍 ▉ 新版本 V7.1 下载地址 ▉ V7.1 新功能 ▼2024-03-03 V7.1 - 更新日志 ▉ V7.0 新UI设计 ▉ 软件介绍 《定时执行专家》是一款制作精良、功能强大、毫秒精度、专业级的定时任务执行软件。软件具有 25 种【任务类型】、12 种【触发器】触发方式&#x…

docker安装ES和kibana

文章目录 一、安装Elasticsearch1. 安装Elasticsearch2. 安装IK分词器3. elasticsearch-head 监控的插件4. 配置跨域 二、安装kibana 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、安装Elasticsearch 1. 安装Elasticsearch 安装Elasticsearch参…

16-网关-自研微服务框

网关 在微服务的场景下&#xff0c;服务因为分布在不同的服务器上&#xff0c;但是用户在访问的时候&#xff0c;不可能去维护这成百上千的入口&#xff0c;希望有统一的入口来进行访问&#xff0c;这就是网关的作用。 网关最重要的一个功能就是路由功能&#xff0c;能将请求转…

JavaWeb03-HTTP协议,Tomcat,Servlet

目录 一、HTTP协议 1.概述 2.特点 3.请求数据格式 &#xff08;1&#xff09;请求行 &#xff08;2&#xff09;请求头 &#xff08;3&#xff09;请求体 &#xff08;4&#xff09;常见请求头 &#xff08;5&#xff09;GET和POST请求区别 4.响应数据格式 &#xf…

uniapp 手写 简易 时间轴 组件

一、案例如图 该案例设计条件&#xff1a; 左侧时间 和竖线、点、内容都是居中对其的&#xff0c;上下时间点中间要有一段距离 二、编写逻辑 1. 布局结构&#xff1a;一共三个元素&#xff0c;左侧是时间和黑点&#xff0c;中间是线条&#xff0c;右侧是内容 2. 样式难点&#…

MATLAB知识点:循环语句中的break 和 continue 关键字

​讲解视频&#xff1a;可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇&#xff08;数学建模清风主讲&#xff0c;适合零基础同学观看&#xff09;_哔哩哔哩_bilibili 节选自​第4章&#xff1a;MATLAB程序流程控制 break 和 con…

Pytorch学习 day03(Tensorboard、Transforms)

Tensorboard Tensorboard能够可视化loss的变化过程&#xff0c;便于我们查看模型的训练状态&#xff0c;也能查看模型当前的输入和输出结果 在Pycharm中&#xff0c;可以通过按住ctrl&#xff0c;并左键点击某个库来进入源文件查看该库的使用方法SummaryWriter是用来向log_dir…

六、软考-系统架构设计师笔记-软件工程基础知识

1、软件工程 软件工程是将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护&#xff0c;即将工程化应用于软件并对上述方法的研究。 软件要经历从需求分析、软件设计、软件开发、运行维护&#xff0c;直至被淘汰这样的全过程&#xff0c;这个过程称为软件的生…

【Android】位置修改相关

获取位置服务总开关状态 //获取LOCATION_MODE值&#xff0c;但adb状态下无法获取 //0为关闭&#xff0c;1 gps、2 network、3 高精度等 int state Settings.Secure.getInt(mContext.getContentResolver(),Settings.Secure.LOCATION_MODE,Settings.Secure.LOCATION_MODE_HIGH_…

嵌入式硬件设计实例:基于STM32的流水灯原理图和PCB设计

最近本来在忙别的事&#xff0c;大约忙到五一以后吧&#xff0c;没有时间研究一些深入的知识。本来想停更的&#xff0c;但是刚刚申请到博客专家&#xff0c;想想还是得更新点文章。这里就把一些以前我做过的一些简单的硬件设计拿来出来复习一下。 本篇文章就来介绍一下&#…

【论文翻译】结构化状态空间模型

文章目录 3.2 对角结构化状态空间模型3.2.1 S4D:对角SSM算法3.2.2 完整应用实例 3.3 对角化加低秩&#xff08;DPLR&#xff09;参数化3.3.1 DPLR 状态空间核算法3.3.2 S4-DPLR 算法和计算复杂度3.3.3赫尔维兹&#xff08;稳定&#xff09;DPLR形式 这篇文章是Mamba作者博士论文…

重量的定义、质量和重量之间的区别

一、简述 物体的重量取决于该物体所在空间点的引力场。重量是一种力&#xff0c;因此它是一个矢量&#xff0c;这意味着它有方向和大小。通过自由体图来表示物体重量产生的力通常很方便。 重量总是从物体的质心向下作用到地球中心。&#xff08;如果你在不同的天体上&#xff0…

万物皆可模块化分解

引言 为何要模块化&#xff0c;这里的主体是人&#xff0c;客体是事物。当事物很小时&#xff0c;人可以很轻松的解决&#xff1b;但是当事物远大于人能处理的范围时&#xff0c;我们就可以考虑对它进行模块化分解。模块化是一种解决复杂问题的方式&#xff0c;放之四海而皆可…

LVS集群(Linux Virtual server)相关介绍及LVS的NAT模式部署

群集的含义 ●Cluster&#xff0c;集群、群集由多台主机构成&#xff0c;但对外只表现为一个整体&#xff0c;只提供访问入口(域名或IP地址)&#xff0c;相当于一台大型计算机 问题&#xff1a; 互联网应用中&#xff0c;随着站点对硬件性能、响应速度、服务稳定性、数据可靠…

Nvm下载安装和基本使用

下载与安装 github地址&#xff1a;Releases coreybutler/nvm-windows (github.com) 默认安装&#xff1a;安装nvm时候&#xff0c;全默认即可&#xff08;如果自定义目录&#xff0c;切记 nvm的安装路径 &#xff1a;不要有汉字&#xff0c;不要有空格&#xff0c;不然后面会…

day04-SpringBootWeb入门

一、SpringBootWeb快速入门 1 需求 需求&#xff1a;基于 SpringBoot 的方式开发一个 web 应用&#xff0c;浏览器发起请求 /hello后&#xff0c;给浏览器返回字符串“Hello World ~”。 2 开发步骤 第1步&#xff1a;创建 SpringBoot 工程项目 第2步&#xff1a;定义 HelloC…