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

题目描述

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, 再加一层嵌套。

相关推荐

  1. SQL--IFNULL()、NULLIF()、ISNULL()函数 简单明了讲解

    2024-03-11 06:06:02       49 阅读
  2. 【LeetCode】1164. 指定日期产品价格

    2024-03-11 06:06:02       60 阅读
  3. sql日期函数

    2024-03-11 06:06:02       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-11 06:06:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-11 06:06:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-11 06:06:02       87 阅读
  4. Python语言-面向对象

    2024-03-11 06:06:02       96 阅读

热门阅读

  1. C and C++ 在线参考手册

    2024-03-11 06:06:02       72 阅读
  2. Python基础知识:数字类型及数学函数详解

    2024-03-11 06:06:02       43 阅读
  3. TenantLineHandler 在 MyBatis Plus 中处理多租户场景

    2024-03-11 06:06:02       49 阅读
  4. 超详细!ROS 包开发工作全流程及所有命令归纳!

    2024-03-11 06:06:02       46 阅读
  5. torch.nn.Parameter()的用法

    2024-03-11 06:06:02       53 阅读
  6. React 第七章 Hooks

    2024-03-11 06:06:02       51 阅读
  7. 数据库基础

    2024-03-11 06:06:02       45 阅读
  8. 伊萨卡训练代码

    2024-03-11 06:06:02       40 阅读
  9. leetcode-hot100-普通数组

    2024-03-11 06:06:02       42 阅读
  10. 我的创作纪念日

    2024-03-11 06:06:02       48 阅读
  11. vue3中使用ref

    2024-03-11 06:06:02       37 阅读
  12. Revit-二开之创建几何形体-拉伸体-(9)

    2024-03-11 06:06:02       40 阅读