力扣SQL50 指定日期的产品价格 双重子查询 coalesce

Problem: 1164. 指定日期的产品价格

  • coalesce 的使用

简洁版

👨‍🏫 参考题解

MySQL 复制代码
select 
    distinct p1.product_id,
    coalesce((select p2.new_price
    from Products p2
    where p2.product_id = p1.product_id and p2.change_date <= '2019-08-16'
    order by p2.change_date DESC
    limit 1),10) as price 
from Products p1

高效版

👨‍🏫 参考题解

java 复制代码
select p1.product_id, ifnull(p2.new_price, 10) as price
from (
    select distinct product_id
    from products
) as p1 -- 所有的产品
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
    )
) as p2 -- 在 2019-08-16 之前有过修改的产品和最新的价格
on p1.product_id = p2.product_id
相关推荐
闲人编程7 分钟前
Python 实现 LM 算法(Levenberg-Marquardt)
开发语言·python·算法·优化·梯度下降·拟合·lm
cwywsx8 分钟前
C++:二叉搜索树
开发语言·c++·算法
成宏爸15 分钟前
【字幕】恋上数据结构与算法之015动态数组03简单接口的实现
数据结构·算法
Lenyiin24 分钟前
3286、穿越网格图的安全路径
c++·算法·leetcode
临沂堇37 分钟前
CCF刷题计划——阴阳龙(八方最近点)
算法
Daking-1 小时前
「数组」十大排序:精讲与分析(C++)
c++·算法·排序算法
轩源源1 小时前
C/C++内存管理
c语言·开发语言·数据结构·c++·算法·缓存·内存空间的开创
人才程序员1 小时前
CSP-J 算法基础 图论
开发语言·数据结构·c++·算法·青少年编程·图论·编程比赛
微学AI1 小时前
机器学习实战21-基于XGBoost算法实现糖尿病数据集的分类预测模型及应用
算法·机器学习·分类·糖尿病
热爱编程的OP1 小时前
图论篇--代码随想录算法训练营第五十八天打卡|拓扑排序,dijkstra(朴素版),dijkstra(堆优化版)精讲
数据结构·c++·算法·图论