diff --git a/01-TopTravellers.sql b/01-TopTravellers.sql new file mode 100644 index 0000000..f628f36 --- /dev/null +++ b/01-TopTravellers.sql @@ -0,0 +1,6 @@ +-- Problem 1: Top Travellers (https://leetcode.com/problems/top-travellers/) +select name, ifnull(sum(r.distance), 0) as travelled_distance +from users u +left join rides r on u.id = r.user_id +group by u.id +order by travelled_distance desc, name asc \ No newline at end of file diff --git a/02-ApplesAndOranges.sql b/02-ApplesAndOranges.sql new file mode 100644 index 0000000..6604d4e --- /dev/null +++ b/02-ApplesAndOranges.sql @@ -0,0 +1,27 @@ +-- cte +with apples as( + select sale_date, fruit as apple, sold_num as a_num + from sales where fruit = 'apples' +), +oranges as ( + select sale_date, fruit as oranges, sold_num as o_num + from sales where fruit = 'oranges' +) +select apples.sale_date, (a_num - o_num) as diff +from apples +join oranges on apples.sale_date=oranges.sale_date +order by sale_date + +-- solution 2 +select a.sale_date, a.sold_num - b.sold_num as diff +from sales a +join sales b on a.sale_date = b.sale_date +where a.fruit = 'apples' and b.fruit = 'oranges' + +-- better version +select sale_date, +sum (case when fruit='apples' then sold_num else 0 end) - +sum (case when fruit='oranges' then sold_num else 0 end) as diff +from sales +group by sale_date +order by sale_date