diff --git a/1.sql b/1.sql new file mode 100644 index 0000000..1eae7cb --- /dev/null +++ b/1.sql @@ -0,0 +1,8 @@ +# Write your MySQL query statement below +WITH CTE AS ( + SELECT score, + DENSE_RANK() OVER (ORDER BY score DESC) AS rnk + FROM Scores +) +SELECT score, rnk AS 'rank' +FROM CTE \ No newline at end of file diff --git a/2.sql b/2.sql new file mode 100644 index 0000000..518d592 --- /dev/null +++ b/2.sql @@ -0,0 +1,7 @@ +SELECT ( + CASE + WHEN id%2 != 0 AND id = cnt THEN id + WHEN id%2 != 0 AND id != cnt THEN id+1 + ELSE id-1 + END +) AS 'id', student FROM Seat , (SELECT COUNT(*) AS 'cnt' FROM Seat) AS seat_counts ORDER BY id diff --git a/3.sql b/3.sql new file mode 100644 index 0000000..82a3f33 --- /dev/null +++ b/3.sql @@ -0,0 +1,8 @@ +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 diff --git a/4.sql b/4.sql new file mode 100644 index 0000000..65cc4c3 --- /dev/null +++ b/4.sql @@ -0,0 +1,11 @@ +WITH CTE AS( + SELECT Employee.name, Employee.departmentId, salary, DENSE_RANK() +OVER (PARTITION BY Employee.departmentId ORDER BY Employee.salary DESC) AS rnk +FROM Employee) + + +SELECT Department.name AS Department, CTE.name AS Employee, CTE.salary AS Salary +FROM CTE +JOIN Department ON Department.id = CTE.departmentId +WHERE rnk <= 3 +