diff --git a/Rankemails.sql b/Rankemails.sql new file mode 100644 index 0000000..e239967 --- /dev/null +++ b/Rankemails.sql @@ -0,0 +1,26 @@ +# Write your MySQL query statement below +# -------------------------- Using Window Function DENSE_RANK()-------------- +-- SELECT +-- Score, +-- DENSE_RANK() OVER (ORDER BY Score DESC) AS 'rank' +-- FROM +-- Scores; + +# ------------------------- Handling Null with Null as rank 1 ----------------- +SELECT + Score, + DENSE_RANK() OVER (ORDER BY COALESCE(Score, 1) DESC) AS 'RANK' +FROM + Scores; + +# ------------------------- Using subquery------------------------------- +-- SELECT +-- Score, +-- (SELECT COUNT(DISTINCT Score) +-- FROM scores s2 +-- WHERE s2.score >= s1.score +-- ) AS 'rank' +-- FROM +-- Scores s1 +-- ORDER BY +-- score DESC; diff --git a/Top3Dept.sql b/Top3Dept.sql new file mode 100644 index 0000000..13a3b59 --- /dev/null +++ b/Top3Dept.sql @@ -0,0 +1,15 @@ +WITH RankedSalaries 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 + JOIN Department d ON e.departmentId = d.id +) +SELECT + Department, + Employee, + Salary +FROM RankedSalaries +WHERE salary_rank <= 3; diff --git a/TreeNode.sql b/TreeNode.sql new file mode 100644 index 0000000..a68ca6d --- /dev/null +++ b/TreeNode.sql @@ -0,0 +1,32 @@ +# Write your MySQL query statement below +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 + WHERE p_id IS NOT NULL +) AND +p_id IS NOT NULL; \ No newline at end of file diff --git a/exchangeSeats.sql b/exchangeSeats.sql new file mode 100644 index 0000000..28bdb4e --- /dev/null +++ b/exchangeSeats.sql @@ -0,0 +1,22 @@ +# Write your MySQL query statement below +#-------------------Using ODD/EVEN --------------- +-- SELECT( +-- CASE +-- WHEN mod(id, 2) != 0 AND id != cnt THEN id + 1 +-- WHEN mod(id, 2) != 0 AND id = cnt THEN id +-- ELSE id - 1 +-- END) AS id, student +-- FROM +-- Seat, (SELECT COUNT(*) AS cnt FROM Seat) as count_table +-- ORDER BY id +#---------------- Using LEFT JOIN and XOR function------------------ +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