力扣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
相关推荐
fufu03112 分钟前
Linux环境下的C语言编程(四十一)
linux·c语言·算法
bing.shao8 分钟前
Golang 之闭包
java·算法·golang
顾子羡_Gu8 分钟前
算法进阶指南:搜索与数论基础
数据结构·算法
唯道行27 分钟前
计算机图形学·25 消隐2 区域子分算法-光线投射算法
人工智能·算法·计算机视觉·计算机图形学·opengl
jinxinyuuuus31 分钟前
FIRE之旅 财务计算器:实时交互式建模与前端性能工程
前端·人工智能·算法·自动化
千丈之松36 分钟前
能力和法律
算法
2401_8414956438 分钟前
【LeetCode刷题】缺失的第一个正数
数据结构·python·算法·leetcode·数组·哈希·缺失最小正整数
旧梦吟1 小时前
脚本 生成图片水印
前端·数据库·算法·golang·html5
测试19981 小时前
软件测试方法之边界值分析法
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
拼好饭和她皆失1 小时前
二分答案算法详解:从理论到实践解决最优化问题
数据结构·算法·二分·二分答案