LeetCode MySQL 1164. 指定日期的产品价格 *
发布日期:2021-07-01 03:30:00 浏览次数:2 分类:技术文章

本文共 1532 字,大约阅读时间需要 5 分钟。

文章目录

1. 题目

产品数据表: Products

+---------------+---------+| Column Name   | Type    |+---------------+---------+| product_id    | int     || new_price     | int     || change_date   | date    |+---------------+---------+这张表的主键是 (product_id, change_date)。

这张表的每一行分别记录了 某产品 在某个日期 更改后 的新价格

写一段 SQL来查找在 2019-08-16 时全部产品的价格,

假设所有产品在修改前的价格都是 10。

查询结果格式如下例所示:

Products table:+------------+-----------+-------------+| product_id | new_price | change_date |+------------+-----------+-------------+| 1          | 20        | 2019-08-14  || 2          | 50        | 2019-08-14  || 1          | 30        | 2019-08-15  || 1          | 35        | 2019-08-16  || 2          | 65        | 2019-08-17  || 3          | 20        | 2019-08-18  |+------------+-----------+-------------+Result table:+------------+-------+| product_id | price |+------------+-------+| 2          | 50    || 1          | 35    || 3          | 10    |+------------+-------+

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/product-price-at-a-given-date
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

# Write your MySQL query statement belowselect t1.product_id, ifnull(t2.new_price, 10) pricefrom(    select distinct product_id from Products) t1left join(    select product_id, new_price    from Products    where (product_id, change_date) in    (        select product_id, max(change_date) change_date        from Products        where change_date <= '2019-08-16'        group by product_id    )) t2on t1.product_id = t2.product_id

我的CSDN

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

Michael阿明

转载地址:https://michael.blog.csdn.net/article/details/107569576 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:LeetCode 1484. 克隆含随机指针的二叉树(哈希/递归)
下一篇:LeetCode MySQL 1149. 文章浏览 II

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月16日 23时32分30秒