diff --git a/database/data.db b/database/data.db index 3e9a299..9fd718e 100644 Binary files a/database/data.db and b/database/data.db differ diff --git a/src/lib/db/queries.ts b/src/lib/db/queries.ts index d69212f..2f9305c 100644 --- a/src/lib/db/queries.ts +++ b/src/lib/db/queries.ts @@ -86,3 +86,42 @@ export const getHottestAndColdestCityInWorld = db.query(` WHERE hottest_rank = 1 OR coldest_rank = 1 LIMIT 2 `); + + +export const getWorldTemperatureStats = db.query(` + WITH city_temps AS ( + SELECT + c.id as city_id, + c.name as city_name, + c.country_id, + co.name as country_name, + md.max as max_temp, + md.min as min_temp, + md.date, + ROW_NUMBER() OVER (ORDER BY md.max DESC) as hottest_rank, + ROW_NUMBER() OVER (ORDER BY md.max ASC) as coldest_rank + FROM cities c + JOIN meteo_data md ON c.id = md.city_id + JOIN countries co ON c.country_id = co.id + WHERE md.date = $date + ), + world_stats AS ( + SELECT + ct1.city_id, + ct1.city_name, + ct1.country_id, + ct1.country_name, + ct1.max_temp, + ct1.date, + ct1.hottest_rank, + ct1.coldest_rank + FROM city_temps ct1 + WHERE ct1.hottest_rank = 1 OR ct1.coldest_rank = 1 + ) + SELECT * FROM world_stats + ORDER BY max_temp DESC + LIMIT 2 +`); + + +