diff --git a/MarketAnalysisII.sql b/MarketAnalysisII.sql new file mode 100644 index 0000000..d9756fd --- /dev/null +++ b/MarketAnalysisII.sql @@ -0,0 +1,17 @@ +''' +https://leetcode.com/problems/market-analysis-ii/description/ +''' + +WITH CTE AS ( + SELECT seller_id, item_id, RANK() OVER(PARTITION BY seller_id ORDER BY order_date) AS rnk + from Orders +), +ACTE AS ( + SELECT CTE.seller_id, Items.item_brand + FROM CTE + JOIN Items ON CTE.item_id = Items.item_id + WHERE rnk = 2 +) +SELECT Users.user_id AS seller_id, IF(Users.favorite_brand = ACTE.item_brand, 'yes', 'no') AS 2nd_item_fav_brand +FROM Users +LEFT JOIN ACTE ON Users.user_id = ACTE.seller_id \ No newline at end of file diff --git a/TournamentWinners.sql b/TournamentWinners.sql new file mode 100644 index 0000000..fb17879 --- /dev/null +++ b/TournamentWinners.sql @@ -0,0 +1,12 @@ +''' +https://leetcode.com/problems/tournament-winners/description/ +''' + +SELECT group_id, player_id FROM (SELECT p.player_id, p.group_id, RANK() OVER(PARTITION BY p.group_id ORDER BY + SUM(CASE + WHEN p.player_id = m.first_player THEN m.first_score ELSE second_score + END)DESC, p.player_id ASC) AS rnk +FROM Players p +JOIN Matches m ON p.player_id IN (m.first_player, m.second_player) +GROUP BY p.player_id, p.group_id) AS intermediate +WHERE rnk = 1