From d8dc3fc1557e5e7ac023cd337b7ca4cd4c63f809 Mon Sep 17 00:00:00 2001 From: tejas274 Date: Tue, 27 May 2025 09:22:30 -0400 Subject: [PATCH] feat:problem 1 and problem 2 solution --- problem1-1407-Top-Travellers.sql | 10 ++++++++++ problem2-1445-Apples-Oranges.sql | 30 ++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 problem1-1407-Top-Travellers.sql create mode 100644 problem2-1445-Apples-Oranges.sql 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