「4月日新计划更文活动」
题目:197. 上升的温度
+---------------+---------+
| Column Name | Type |
+---------------+---------+
| id | int |
| recordDate | date |
| temperature | int |
+---------------+---------+
id 是这个表的主键
该表包含特定日期的温度信息
需求
编写一个 SQL 查询,来查找与之前(昨天的)日期相比温度更高的所有日期的 id 。 返回结果 不要求顺序 。
解析
# Write your MySQL query statement below
select w1.id id from weather w1 where w1.temperature >(select w2.temperature from weather w2 where datediff(w1.recordDate ,w2.recordDate) =1)
题目:607. 销售员
SalesPerson 表
+-----------------+---------+
| Column Name | Type |
+-----------------+---------+
| sales_id | int |
| name | varchar |
| salary | int |
| commission_rate | int |
| hire_date | date |
+-----------------+---------+
sales_id 是该表的主键列。
该表的每一行都显示了销售人员的姓名和 ID ,以及他们的工资、佣金率和雇佣日期。
Company 表
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| com_id | int |
| name | varchar |
| city | varchar |
+-------------+---------+
com_id 是该表的主键列。
该表的每一行都表示公司的名称和 ID ,以及公司所在的城市。
Orders 表
+-------------+------+
| Column Name | Type |
+-------------+------+
| order_id | int |
| order_date | date |
| com_id | int |
| sales_id | int |
| amount | int |
+-------------+------+
order_id 是该表的主键列。
com_id 是 Company 表中 com_id 的外键。
sales_id 是来自销售员表 sales_id 的外键。
该表的每一行包含一个订单的信息。这包括公司的 ID 、销售人员的 ID 、订单日期和支付的金额。
需求
编写一个SQL查询,报告没有任何与名为 “RED” 的公司相关的订单的所有销售人员的姓名。 以 任意顺序 返回结果表。
解析
# Write your MySQL query statement below
select name from SalesPerson where sales_id not in (select sales_id from orders where com_id in ( select com_id from Company where name = 'RED' ))
知识点
datediff 函数
- 定义:Datediff函数通常用于计算两个日期之间的天数、月数或年数的差异
- 语句格式:
DATEDIFF(datepart, startdate, enddate)- 其中,
datepart是指定需要计算的差异部分的参数,比如:- "d" 表示计算两个日期之间的天数
- "m" 表示计算两个日期之间的月份差异
- "y" 表示计算两个日期之间的年份差异
startdate和datepart分别是表示需要比较的两个日期的时间戳参数
- 其中,
- 栗子🌰:197题目
datediff(w1.recordDate ,w2.recordDate)由此计算出两个时间的差值
拓展
UNIX_TIMESTAMP 函数
- 定义:可以将一个时间戳转换为UNIX时间戳格式
- 语句格式:
UNIX_TIMESTAMP([datetime])- 其中
datetime参数是指定的日期和时间,可以是一个日期时间类型的字段或者一个日期时间字符串。如果未指定该参数,则默认使用当前系统时间
- 其中
- 栗子🌰:计算差值的时候可以用一个值减去另一个值,算出来的是两个值之间的差,以UNIX时间戳格式展示