diff --git a/LeetCode SQL 50 Solution/602. Friend Requests II.sql b/LeetCode SQL 50 Solution/602. Friend Requests II.sql new file mode 100644 index 0000000..99c5e2c --- /dev/null +++ b/LeetCode SQL 50 Solution/602. Friend Requests II.sql @@ -0,0 +1,67 @@ +602. Friend Requests II: Who Has the Most Friends +Solved +Medium +Topics +Companies +Hint +SQL Schema +Pandas Schema +Table: RequestAccepted + ++----------------+---------+ +| Column Name | Type | ++----------------+---------+ +| requester_id | int | +| accepter_id | int | +| accept_date | date | ++----------------+---------+ +(requester_id, accepter_id) is the primary key (combination of columns with unique values) for this table. +This table contains the ID of the user who sent the request, the ID of the user who received the request, and the date when the request was accepted. + + +Write a solution to find the people who have the most friends and the most friends number. + +The test cases are generated so that only one person has the most friends. + +The result format is in the following example. + + + +Example 1: + +Input: +RequestAccepted table: ++--------------+-------------+-------------+ +| requester_id | accepter_id | accept_date | ++--------------+-------------+-------------+ +| 1 | 2 | 2016/06/03 | +| 1 | 3 | 2016/06/08 | +| 2 | 3 | 2016/06/08 | +| 3 | 4 | 2016/06/09 | ++--------------+-------------+-------------+ +Output: ++----+-----+ +| id | num | ++----+-----+ +| 3 | 3 | ++----+-----+ +Explanation: +The person with id 3 is a friend of people 1, 2, and 4, so he has three friends in total, which is the most number than any others. + + +Follow up: In the real world, multiple people could have the same most number of friends. Could you find all these people in this case? + + + +# Write your MySQL query statement below +WITH + T AS ( + SELECT requester_id, accepter_id FROM RequestAccepted + UNION ALL + SELECT accepter_id, requester_id FROM RequestAccepted + ) +SELECT requester_id AS id, COUNT(1) AS num +FROM T +GROUP BY 1 +ORDER BY 2 DESC +LIMIT 1; \ No newline at end of file diff --git a/LeetCode SQL 50 Solution/626. Exchange Seats.sql b/LeetCode SQL 50 Solution/626. Exchange Seats.sql new file mode 100644 index 0000000..d4ba56e --- /dev/null +++ b/LeetCode SQL 50 Solution/626. Exchange Seats.sql @@ -0,0 +1,65 @@ +626. Exchange Seats +Solved +Medium +Topics +Companies +SQL Schema +Pandas Schema +Table: Seat + ++-------------+---------+ +| Column Name | Type | ++-------------+---------+ +| id | int | +| student | varchar | ++-------------+---------+ +id is the primary key (unique value) column for this table. +Each row of this table indicates the name and the ID of a student. +The ID sequence always starts from 1 and increments continuously. + + +Write a solution to swap the seat id of every two consecutive students. If the number of students is odd, the id of the last student is not swapped. + +Return the result table ordered by id in ascending order. + +The result format is in the following example. + + + +Example 1: + +Input: +Seat table: ++----+---------+ +| id | student | ++----+---------+ +| 1 | Abbot | +| 2 | Doris | +| 3 | Emerson | +| 4 | Green | +| 5 | Jeames | ++----+---------+ +Output: ++----+---------+ +| id | student | ++----+---------+ +| 1 | Doris | +| 2 | Abbot | +| 3 | Green | +| 4 | Emerson | +| 5 | Jeames | ++----+---------+ +Explanation: +Note that if the number of students is odd, there is no need to change the last one's seat. +''' + +# MYSQL Query Accepted + +SELECT ( CASE + WHEN id%2 != 0 AND id != counts THEN id+1 + WHEN id%2 != 0 AND id = counts THEN id + ELSE id-1 + END) AS id, student +FROM seat, (select count(*) as counts from seat) +AS seat_counts +ORDER BY id ASC \ No newline at end of file