From 3d2e7a5a0a3426f8777c93b07c83af5dd8220f98 Mon Sep 17 00:00:00 2001 From: Sakshi Asati Date: Mon, 26 May 2025 13:11:06 -0600 Subject: [PATCH 1/2] Done SQL2 --- PRoblem4.sql | 40 ++++++++++++++++++++++++++++++++++++++++ Problem1.sql | 8 ++++++++ Problem2.sql | 10 ++++++++++ Problem3.sql | 9 +++++++++ 4 files changed, 67 insertions(+) create mode 100644 PRoblem4.sql create mode 100644 Problem1.sql create mode 100644 Problem2.sql create mode 100644 Problem3.sql diff --git a/PRoblem4.sql b/PRoblem4.sql new file mode 100644 index 0000000..0e45dae --- /dev/null +++ b/PRoblem4.sql @@ -0,0 +1,40 @@ +SELECT + Department.name AS "Department", + Employee.name AS "Employee", + Employee.salary AS "Salary" +FROM ( + SELECT + *, + DENSE_RANK() OVER ( + PARTITION BY departmentId + ORDER BY salary DESC + ) AS salary_rank + FROM Employee +) AS Employee +LEFT JOIN Department + ON Employee.departmentId = Department.id +WHERE salary_rank <= 3 +ORDER BY Department.name, Employee.salary DESC, Employee.name; + +-- withcte +WITH cte AS ( + SELECT + d.name AS Department, + e.name AS Employee, + e.salary AS Salary, + DENSE_RANK() OVER ( + PARTITION BY e.departmentId + ORDER BY e.salary DESC + ) AS salary_rank + FROM Employee e + LEFT JOIN Department d + ON e.departmentId = d.id +) +SELECT + Department, + Employee, + Salary +FROM cte +WHERE salary_rank <= 3 +ORDER BY Department, Salary DESC; + diff --git a/Problem1.sql b/Problem1.sql new file mode 100644 index 0000000..e7461ed --- /dev/null +++ b/Problem1.sql @@ -0,0 +1,8 @@ +# Write your MySQL query statement below +-- SELECT s1.score, (select COUNT(DISTINCT s2.score) +-- FROM scores s2 WHERE s2.score>=s1.score )AS 'rank' +-- FROM scores s1 ORDER BY s1.score DESC; + +SELECT s.score, COUNT(DISTINCT T.score) AS 'rank' +FROM scores s JOIN scores T ON s.score<=T.score +GROUP BY s.id ORDER BY S.SCORE DESC; \ No newline at end of file diff --git a/Problem2.sql b/Problem2.sql new file mode 100644 index 0000000..b6bd7e7 --- /dev/null +++ b/Problem2.sql @@ -0,0 +1,10 @@ +# Write your MySQL query statement below +-- SELECT count(id) from FROM seats; +-- SELECT MOD(id,2) AS 'mod' from seat; +-- SELECT ( +-- CASE +-- WHEN mod(id,2) !=0 AND id!=cnts THEN id+1 +-- WHEN mod(id,2) !=0 AND id =cnts THEN id +-- ELSE id-1 +-- END) AS 'id' ,student FROM Seat, (SELECT COUNT(*) as 'cnts' FROM Seat) AS SEAT_COUNTS ORDER BY ID; +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 s1.id; \ No newline at end of file diff --git a/Problem3.sql b/Problem3.sql new file mode 100644 index 0000000..629412b --- /dev/null +++ b/Problem3.sql @@ -0,0 +1,9 @@ +# Write your MySQL query statement below + +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) AND p_id is NOT NULL THEN 'Leaf' + ELSE 'Inner' + END +) AS 'type' FROM tree; \ No newline at end of file From 5cfde050abff437a4566d3d27dc68ab5c33da75a Mon Sep 17 00:00:00 2001 From: Sakshi Asati Date: Mon, 26 May 2025 13:12:52 -0600 Subject: [PATCH 2/2] Done SQL2 --- PRoblem4.sql | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/PRoblem4.sql b/PRoblem4.sql index 0e45dae..2f65b1a 100644 --- a/PRoblem4.sql +++ b/PRoblem4.sql @@ -1,22 +1,3 @@ -SELECT - Department.name AS "Department", - Employee.name AS "Employee", - Employee.salary AS "Salary" -FROM ( - SELECT - *, - DENSE_RANK() OVER ( - PARTITION BY departmentId - ORDER BY salary DESC - ) AS salary_rank - FROM Employee -) AS Employee -LEFT JOIN Department - ON Employee.departmentId = Department.id -WHERE salary_rank <= 3 -ORDER BY Department.name, Employee.salary DESC, Employee.name; - --- withcte WITH cte AS ( SELECT d.name AS Department,