SQL(指定日期的产品价格)
创始人
2024-06-01 01:18:50

##还有一个类型的题型,它是所有人的噩梦,那就是题都看不懂的题,这题真第一眼完全不知道它在说什么

1164. 指定日期的产品价格

产品数据表: 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
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

# Write your MySQL query statement below
select b.product_id,ifnull(a.new_price,10) price
from(select distinct(product_id) from Products) b
left join(select *from Products cwhere (c.product_id,c.change_date) in(select p.product_id,Max(p.change_date) change_datefrom Products p where p.change_date<='2019-08-16'group by p.product_id)) a
on b.product_id =a.product_id

相关内容

热门资讯

原创 周... 在时间的洪流中,朝代一直在不断地更迭。一些落后的思想或制度,都会因为无法适应时代所需,被淹没在洪流之...
原创 从... 不如从我们最常接触的“东风”开始说起,它几乎就像我们的老朋友一样常常出现在我们的生活中,如今的“东风...
家校联谊会班主任发言稿 班主任... 家校联谊会班主任发言稿目光深远记得,在“天下女人寻找幸福力XX度活动”中,被评为“最佳男士”的刘震云...
开工典礼设计发言 开工典礼设计... 开工典礼设计发言主持人首先介绍各级领导及嘉宾;让我们以热烈的掌声对各位领导及嘉宾的到来表示欢迎和感谢...
自己的十岁生日贺词 自己的十岁... 自己的十岁生日贺词  尊敬的爷爷奶奶、叔叔阿姨、哥哥姐姐:  大家好!  首先,我代表爸爸妈妈向各位...