LeetCode MySQL 1164. 指定日期的产品价格 *

文章目录

    • 1. 题目
    • 2. 解题

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 below
select t1.product_id, ifnull(t2.new_price, 10) price
from
(select distinct product_id from Products
) t1
left join
(select product_id, new_pricefrom Productswhere (product_id, change_date) in(select product_id, max(change_date) change_datefrom Productswhere change_date <= '2019-08-16'group by product_id)
) t2
on t1.product_id = t2.product_id

我的CSDN博客地址 https://michael.blog.csdn.net/

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474754.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python tkinter 实例_Python tkinter模版代码实例

这篇文章主要介绍了Python tkinter模版代码实例,文中通过示例代码介绍的非常详细&#xff0c;对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下代码如下import tkinterimport timeimport threadingfrom tkinter import ttkevent threading.Event()once0def s…

判断浏览器版本

用jquery判断浏览器类型&#xff1a; 判断浏览器类型是IE浏览器还是火狐甚至是opera或者苹果浏览器safari&#xff0c;jquery 特效代码如下&#xff1a; $(function(){if($.browser.msie) {alert("这是一个IE浏览器");}else if($.browser.opera) {alert("这是一…

自己动手写cpu 光盘_自己动手写CPU配套源码

自己动手写CPU的源代码&#xff0c;一共15章&#xff0c;可以完整实现MIPS的指令文件&#xff1a;n459.com/file/25127180-476886294以下内容无关&#xff1a;-------------------------------------------分割线---------------------------------------------目录一、往期回顾…

LeetCode 1484. 克隆含随机指针的二叉树(哈希/递归)

文章目录1. 题目2. 解题2.1 原地算法2.2 哈希表1. 题目 给你一个二叉树&#xff0c;树中每个节点都含有一个附加的随机指针&#xff0c;该指针可以指向树中的任何节点或者指向空&#xff08;null&#xff09;。 请返回该树的 深拷贝 。 该树的输入/输出形式与普通二叉树相同…

QTreeWidget的基本操作

在主函数中增加&#xff1a; init();connect(ui->treeWidget,SIGNAL(itemChanged(QTreeWidgetItem*, int)),this,SLOT(treeItemChanged(QTreeWidgetItem*,int)));函数实现&#xff1a; void Widget::init() {ui->treeWidget->setHeaderLabels(QStringList()<<&q…

extjs2.0 ie8 下拉树_ExtJs下拉树的实现

直接上代码&#xff1a;Ext.ux.TreeCombo Ext.extend(Ext.form.ComboBox, {constructor : function(cfg) {cfg cfg || {};Ext.ux.TreeCombo.superclass.constructor.call(this, Ext.apply({maxHeight : 300,editable : false,mode : local,triggerAction : all,rootVisible :…

LeetCode 294. 翻转游戏 II(记忆化递归)

文章目录1. 题目2. 解题1. 题目 你和朋友玩一个叫做「翻转游戏」的游戏&#xff0c; 游戏规则&#xff1a;给定一个只有 和 - 的字符串。 你和朋友轮流将 连续 的两个 "" 反转成 "--"。 当一方无法进行有效的翻转时便意味着游戏结束&#xff0c;则另一方…

CMD 命令行查看端口被哪个程序占用,并根据PID值,找到相应的程序,关闭掉对应服务或进程!...

CMD 命令行查看端口被哪个程序占用&#xff0c;并根据PID值&#xff0c;找到相应的程序&#xff0c;关闭掉对应服务或进程&#xff01;不用任何第三方软件的情况下&#xff0c;打开CMD执行如下命令&#xff1a;1&#xff0c;netstat -ano 你可以查看到Local Address下面的80端口…

mysql 逻辑备份导入数据库_mysql逻辑备份(mysql dump的使用)

mysqldump 属于MySQL客户端工具mysqldump备份工具对于MyISAM存储引擎实现备份是温备份&#xff0c;对innodb存储引擎是可以实现热备份。使用mysqldump备份数据库可以实现完全备份 二进制日志文件&#xff0c;这样也算是完全备份 增量备份。首先将这个数据库备份下来这就是完全…

LeetCode 271. 字符串的编码与解码(4位16进制字符+字符串)

文章目录1. 题目2. 解题1. 题目 请你设计一个算法&#xff0c;可以将一个 字符串列表 编码成为一个 字符串。 这个编码后的字符串是可以通过网络进行高效传送的&#xff0c;并且可以在接收端被解码回原来的字符串列表。 1 号机&#xff08;发送方&#xff09;有如下函数&…

通过SQL Server 2008 访问Oracle 10g

之前写过一篇关于SQL Server 访问MySQL 数据库的文章&#xff0c;最近正好又遇到需要访问Oracle 的情况&#xff0c;将配置过程记录下来也供大家参考。 准备工作 事先在需要访问Oracle 数据库的主机上完成以下工作&#xff1a; 1. 安装SQL Server 数据库&#xff1a;SQL Server…

mysql注入技巧原理_MySQL注入技巧总结

0x00 介绍以下所有技巧都只在mysql适用&#xff0c;因为它太灵活了。0x01 MYSQl灵活的语法1 MySQL语法以及认证绕过注释符&#xff1a;#&#xff0c;-- X(X为任意字符)/*(MySQL-5.1);%00or 11;%00or 11 union select 1,2or 11 #/*!50000or*/ 11 -- - //版本号为5.1.38时只要小于…

LeetCode 410. 分割数组的最大值(极小极大化 二分查找 / DP)

文章目录1. 题目2. 解题2.1 二分查找2.2 DP1. 题目 给定一个非负整数数组和一个整数 m&#xff0c;你需要将这个数组分成 m 个非空的连续子数组。 设计一个算法使得这 m 个子数组各自和的最大值最小。 注意: 数组长度 n 满足以下条件: 1 ≤ n ≤ 1000 1 ≤ m ≤ min(50, n)示…

python 强制结束线程_在python中实现强制关闭线程的示例

Python 如何强制关闭线程过去只可以用来回忆&#xff0c;别沉迷在阴影中&#xff0c;否则永远看不清前面的路。Python用sleep停止一个线程的运行&#xff0c;而不影响主线程的运行&#xff0c;案例代码如下&#xff1a; from threading import *import time class MyThread(Thr…

Visual studio 2012 ultimate 安装遇到 Prerequisites , 错误的函数 incorrect function

如题 很奇怪, 然后 google , 给出的方案都不行........ 最后发现 原来iso没下全...........1.3gb, 原本是1.48gb 的............. 转载于:https://www.cnblogs.com/norsd/archive/2013/01/13/6359443.html

LeetCode 1121. 将数组分成几个递增序列

文章目录1. 题目2. 解题1. 题目 给你一个 非递减 的正整数数组 nums 和整数 K&#xff0c;判断该数组是否可以被分成一个或几个 长度至少 为 K 的 不相交的递增子序列。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,2,3,3,4,4], K 3 输出&#xff1a;true 解释&#xff…

mysql注入单引号被过滤_证明过滤单引号的ORDER BY可以注入

题目&#xff1a;证明基于ORDER BY的SQL 注入&#xff0c;且单引号(’)被过滤。已知&#xff1a;代码如下&#xff0c;有注入无悬念。$sortColumn mysqli_real_escape_string($_GET[sort_column]);$query "SELECT * from cr0_3 WHERE active true ORDER BY $sortColumn …

error_reporting()的用法

PHP代码的调试 有时我们运行PHP代码的时候会碰到问题并且我们不知道这问题究竟出在哪儿。而PHP中专门有个error_reporting() 函数,它可以告诉你你的代码中的每一处错误。如果你希望它显示页面的所有可能出现的错误信息&#xff0c;可以将下面这句代码放在文件的第二行&#xff…

LeetCode 1272. 删除区间

文章目录1. 题目2. 解题1. 题目 给你一个 有序的 不相交区间列表 intervals 和一个要删除的区间 toBeRemoved&#xff0c; intervals 中的每一个区间 intervals[i] [a, b] 都表示满足 a < x < b 的所有实数 x 的集合。 我们将 intervals 中任意区间与 toBeRemoved 有交…

mysql多种join_MySQL的几种Join

/* 左表t1*/DROP TABLE IF EXISTS t1;CREATE TABLE t1 (id INT NOT NULL,NAME VARCHAR(20));INSERT INTO t1 VALUES (1,‘t1a‘);INSERT INTO t1 VALUES (2,‘t1b‘);INSERT INTO t1 VALUES (3,‘t1c‘);INSERT INTO t1 VALUES (4,‘t1d‘);INSERT INTO t1 VALUES (5,‘t1f‘);…