顾乔芝士网

持续更新的前后端开发技术栈

day6_上升的温度_温度在上升

一、题目信息

给出了一张Weather表,有

id(主键),

recordDate(报道日期),

temperature(温度)

三个字段

二、题目要求实现效果

找出相比昨天温度更高的日期对应的id

三、示例

1、1-2日的温度是25度,比昨天1-1日的10度高,符合要求,应该输出id 2

2、1-3日的温度是20,比1-2日的20度低,不输出

3、1-4日的温度是30度,比1-3日的20度高,符合要求,输出id 4

4、相对于1-1日而言,没有比它前面一天的日期数据,也不做输出

四、分析

1、我们先看一下用weather表笛卡尔积自身的数据

weather t1 inner join weather t2

内关联不加限制条件就相当于笛卡尔积(第一个表里面的行都会跟第二个表中的每一行组合)

2、从上面的数据我们需要的其实就是标红色的

这些数据的特点就是

t1.recordDate 和 t2.recordDa相差一天,t1相当于昨天的,

①diffdate(t2.recordDate.t1.recordDate) =1

②t1.temperature < t2.temperature

③取t2的id,即温度比昨天高的id

加上这两个限制条件后,数据就只会留下标红底的两行数据

五、sql实现

select

t2.id

from Weather t1 inner join Weather t2

on datediff(t2.recordDate,t1.recordDate) = 1 and t1.temperature < t2.temperature

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言