Given a Weather
table, write a SQL query to find all dates' Ids with higher temperature compared to its previous (yesterday's) dates.
+---------+------------+------------------+ | Id(INT) | Date(DATE) | Temperature(INT) | +---------+------------+------------------+ | 1 | 2015-01-01 | 10 | | 2 | 2015-01-02 | 25 | | 3 | 2015-01-03 | 20 | | 4 | 2015-01-04 | 30 | +---------+------------+------------------+For example, return the following Ids for the above Weather table:
+----+ | Id | +----+ | 2 | | 4 | +----+SQL Schema:
Create
table
If
Not
Exists Weather (
Id
int,
Date
date, Temperature
int)
Truncate
table Weather
insert
into Weather (
Id,
Date, Temperature)
values (
'1',
'2015-01-01',
'10')
insert
into Weather (
Id,
Date, Temperature)
values (
'2',
'2015-01-02',
'25')
insert
into Weather (
Id,
Date, Temperature)
values (
'3',
'2015-01-03',
'20')
insert
into Weather (
Id,
Date, Temperature)
values (
'4',
'2015-01-04',
'30')
思路:SELECT Weather.Id as 'Id' FROM Weather JOIN Weather w ON DATEDIFF(Weather.Date,w.Date) = 1 AND Weather.Temperature > w.Temperature