diff --git a/problem1-1407-Top-Travellers.sql b/problem1-1407-Top-Travellers.sql new file mode 100644 index 0000000..fc63abf --- /dev/null +++ b/problem1-1407-Top-Travellers.sql @@ -0,0 +1,10 @@ +select + u.name, + IFNULL(sum(r.distance),0) as travelled_distance +from +Users u +left join +Rides r +on u.id = r.user_id +group by r.user_id +order by travelled_distance desc,name \ No newline at end of file diff --git a/problem2-1445-Apples-Oranges.sql b/problem2-1445-Apples-Oranges.sql new file mode 100644 index 0000000..765e850 --- /dev/null +++ b/problem2-1445-Apples-Oranges.sql @@ -0,0 +1,30 @@ +--self join way + +select + s.sale_date, + s.sold_num - s1.sold_num AS diff +from +Sales s +join +Sales s1 +on s.sale_date = s1.sale_date +and s.fruit != s1.fruit +and s.fruit = 'apples' and s1.fruit = 'oranges' + +-- group by +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; + +--window function + +SELECT DISTINCT + sale_date, + SUM(CASE WHEN fruit = 'apples' THEN sold_num ELSE 0 END) OVER (PARTITION BY sale_date) - + SUM(CASE WHEN fruit = 'oranges' THEN sold_num ELSE 0 END) OVER (PARTITION BY sale_date) AS diff +FROM Sales +ORDER BY sale_date; \ No newline at end of file