From 03ad4486bb56fe230201b12661faf13a016e4f5d Mon Sep 17 00:00:00 2001 From: tejas274 Date: Wed, 21 May 2025 09:21:53 -0400 Subject: [PATCH 1/4] feat: sql 2 problem 1 and problem 2 --- problem-1.sql | 5 +++++ problem-2.sql | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 problem-1.sql create mode 100644 problem-2.sql diff --git a/problem-1.sql b/problem-1.sql new file mode 100644 index 0000000..7c6c8d6 --- /dev/null +++ b/problem-1.sql @@ -0,0 +1,5 @@ +select +score, +dense_rank() over(order by score desc) AS `rank` +from +Scores \ No newline at end of file diff --git a/problem-2.sql b/problem-2.sql new file mode 100644 index 0000000..5fd3ddf --- /dev/null +++ b/problem-2.sql @@ -0,0 +1,35 @@ +--case statement +select + case + when id%2=1 and id < (select max(id) from seat) then id + 1 + when id%2=0 then id-1 + else + id + END AS id, + student +from + seat +order by id + +--self join +SELECT + s1.id, + COALESCE(s2.student, s1.student) AS student +FROM Seat s1 +LEFT JOIN Seat s2 + ON ( + (s1.id % 2 = 1 AND s2.id = s1.id + 1) OR + (s1.id % 2 = 0 AND s2.id = s1.id - 1) + ) +ORDER BY s1.id; + +--window function lead,lag +SELECT + id, + case + when id%2=1 and id < (select max(id) from seat) then lead(student) over(order by id) + when id%2=0 then lag(student) over(order by id) + else student + END as student +FROM Seat +ORDER BY id From 23994741848019691935eb78d07bcac24eb24ba2 Mon Sep 17 00:00:00 2001 From: tejas274 Date: Wed, 21 May 2025 09:27:58 -0400 Subject: [PATCH 2/4] correcting names of files for future ref --- problem-1.sql => problem1-178-rank-scores.sql | 0 problem-2.sql => problem2-626-exchange-seats.sql | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename problem-1.sql => problem1-178-rank-scores.sql (100%) rename problem-2.sql => problem2-626-exchange-seats.sql (100%) diff --git a/problem-1.sql b/problem1-178-rank-scores.sql similarity index 100% rename from problem-1.sql rename to problem1-178-rank-scores.sql diff --git a/problem-2.sql b/problem2-626-exchange-seats.sql similarity index 100% rename from problem-2.sql rename to problem2-626-exchange-seats.sql From 31d59226afc8b78e51e2dfb678b8693c65da3b42 Mon Sep 17 00:00:00 2001 From: tejas274 Date: Thu, 22 May 2025 08:38:25 -0400 Subject: [PATCH 3/4] feat: sql-2 added different way --- problem2-626-exchange-seats.sql | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/problem2-626-exchange-seats.sql b/problem2-626-exchange-seats.sql index 5fd3ddf..e6a635c 100644 --- a/problem2-626-exchange-seats.sql +++ b/problem2-626-exchange-seats.sql @@ -33,3 +33,12 @@ SELECT END as student FROM Seat ORDER BY id + +--bitwise operator +SELECT + s1.id, + coalesce(s2.student,s1.student) as student +FROM Seat s1 +left join Seat s2 +on (s1.id +1)^1-1=s2.id +ORDER BY id From f08f96cd374329c2590c1e37b1805d7a69b8e9a4 Mon Sep 17 00:00:00 2001 From: tejas274 Date: Fri, 23 May 2025 09:02:27 -0400 Subject: [PATCH 4/4] feat: problem 3 solution added --- problem3-608-tree-nodes.sql | 39 +++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 problem3-608-tree-nodes.sql diff --git a/problem3-608-tree-nodes.sql b/problem3-608-tree-nodes.sql new file mode 100644 index 0000000..2028b1b --- /dev/null +++ b/problem3-608-tree-nodes.sql @@ -0,0 +1,39 @@ +--case statement +SELECT + id, + CASE + WHEN p_id IS NULL THEN 'Root' + WHEN id NOT IN (SELECT DISTINCT p_id FROM Tree WHERE p_id IS NOT NULL) then 'Leaf' + ELSE 'Inner' + END AS type +FROM Tree; + +--if condition +SELECT + id, + IF(P_id is null,'Root',IF(id not in (select distinct p_id from Tree where p_id is not null),'Leaf','Inner')) AS type +FROM Tree; + +--union + +SELECT + id, + 'Root' AS type +FROM Tree +where p_id is null + +union + +SELECT + id, + 'Leaf' AS type +FROM Tree +where id not in (select distinct p_id from Tree where p_id is not null) and p_id is not null + +union + +SELECT + id, + 'Inner' AS type +FROM Tree +where id in (select distinct p_id from Tree) and p_id is not null \ No newline at end of file