34 - 指定日期的产品价格(高频 SQL 50 题基础版)

34 - 指定日期的产品价格


sql 复制代码
-- row_number(行号) 生成连续的序号,不考虑分数相同
-- 在'2019-08-16'之前改的价格,使用最近一期的日期,没有在'2019-08-16'之前改的价格,默认价格为10
select 
    t.product_id, 
    t.new_price as price
from 
    (
        select 
            *,
            row_number() over (PARTITION BY product_id order by change_date desc) as row_num
        from 
            Products
        where 
            change_date<='2019-08-16') 
    as t
where 
    t.row_num=1
union
-- 没有在'2019-08-16'之前改的价格,默认价格为10
select 
    product_id, 10 as price 
from 
    Products 
group by 
    product_id
having 
    min(change_date)>'2019-08-16';
相关推荐
2301_813599551 分钟前
HTML函数开发需要SSD吗_SSD对HTML函数开发效率影响【详解】
jvm·数据库·python
qq_342295822 分钟前
如何在 Pandas 中安全地对非空 DataFrame 执行行级操作
jvm·数据库·python
小梦爱安全10 分钟前
数据库安全性控制
数据库
qq_3345635513 分钟前
MySQL如何实现数据库审计日志记录_开启通用日志与插件审计
jvm·数据库·python
ChoSeitaku16 分钟前
NO.4|模型管理|会话管理|数据管理|Sqlite
数据库·sqlite
SPC的存折16 分钟前
在Alpine 搭建 WordPress
linux·运维·服务器·数据库·php
m0_6403093018 分钟前
如何大幅提升 Google Sheets 数据库更新脚本的执行效率
jvm·数据库·python
杨浦老苏18 分钟前
开源数据库备份工具Databasus
数据库·docker·备份·群晖
Greyson118 分钟前
CSS如何实现单选按钮自定义样式_利用伪元素隐藏默认UI
jvm·数据库·python
2401_8359568120 分钟前
Go语言怎么防SQL注入_Go语言SQL注入防护教程【深入】
jvm·数据库·python