当前位置: 代码迷 >> 综合 >> 1.5( medium)分数排名
  详细解决方案

1.5( medium)分数排名

热度:85   发布时间:2023-09-21 01:14:05.0

一、题目

1.5( medium)分数排名

1.5( medium)分数排名

 

二、分析

本题的难点在于两点: ① 如何对比时间   =>   可以使用 DATEDIFF 函数进行对比

                                     ② 如何对比前一天的时间   =>  使用交叉联接

 

三、语句

3.1 使用 DATEDIFF 结合交叉联接实现查询

SELECTa.Id 
FROMWeather aCROSS JOIN Weather b 
WHEREDATEDIFF( a.RecordDate, b.RecordDate )= 1 AND a.Temperature > b.Temperature

3.2 使用 DATEDIFF 结合内联接实现查询

SELECTa.Id 
FROMWeather aINNER JOIN Weather b 
WHEREDATEDIFF( a.RecordDate, b.RecordDate )= 1 AND a.Temperature > b.Temperature

 

四、知识点

4.1 时间函数 datediff

datediff(日期1, 日期2): 得到的结果是日期1与日期2相差的天数。
如果日期1比日期2大,结果为正;如果日期1比日期2小,结果为负。

1.5( medium)分数排名

1.5( medium)分数排名

 

4.2 交叉联接

使用交叉查询,会将两张表进行笛卡尔积,如 A 表有 1000 条数据,B 表有 2000 条数据,则使用交叉联接后数据量为: 

1000 * 2000  = 20w 条。

 

 

 

 

 

 

  相关解决方案