SQL Server 每日一题--解析天气预报员

这道题主要考察 DATEDIFF 的用法, DATEDIFF 主要用于计算两个日期的差。通过题目可知我们可以通过将 weather 与自身相结合,并使用 DATEDIFF() 函数。那么这道题有两种主要的解决方法:


  1. 利用 from table_name1 , table_name2
  2. 利用 inner join

下面我们来看一下这两种方法的使用。

零、from table_name1 , table_name2

select w2.RecordDate from Weather as w1,Weather as w2
where datediff(dd,w1.RecordDate,w2.RecordDate)=1 and w1.Temperature<w2.Temperature

一、 inner join

select b.RecordDate from Weather a inner JOIN Weather b ON DATEDIFF(day, a.RecordDate, b.RecordDate)=1 and a.Temperature<b.Temperature

我个人建议使用第二种方法 inner join 来解决这个问题,因为第一种方法是一种过时的语法,另一方面根据我在实践中的经验来看,第一种方法的效率会低于第二种方法。

上一篇:秒级启动万个容器,探秘阿里云容器镜像加速黑科技


下一篇:浅析基于SQL Server PDW大数据解决方案