Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions MarketAnalysis2.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
WITH RankedSales AS (
SELECT
o.seller_id,
o.order_date,
i.item_brand,
ROW_NUMBER() OVER (PARTITION BY o.seller_id ORDER BY o.order_date) AS sale_rank
FROM Orders o
JOIN Items i ON o.item_id = i.item_id
),
SecondSales AS (
SELECT
rs.seller_id,
rs.item_brand
FROM RankedSales rs
WHERE rs.sale_rank = 2
)
SELECT
u.user_id AS seller_id,
CASE
WHEN ss.item_brand = u.favorite_brand THEN 'yes'
ELSE 'no'
END AS 2nd_item_fav_brand
FROM Users u
LEFT JOIN SecondSales ss ON u.user_id = ss.seller_id;
PRINT 'Ranked Sales CTE started';
WITH RankedSales AS (
SELECT
o.seller_id,
o.order_date,
i.item_brand,
ROW_NUMBER() OVER (PARTITION BY o.seller_id ORDER BY o.order_date) AS sale_rank
FROM Orders o
JOIN Items i ON o.item_id = i.item_id
)
PRINT 'Ranked Sales CTE completed';
PRINT 'Second Sales CTE started';
SecondSales AS (
SELECT
rs.seller_id,
rs.item_brand
FROM RankedSales rs
WHERE rs.sale_rank = 2
)
PRINT 'Second Sales CTE completed';
PRINT 'Final query started';
SELECT
u.user_id AS seller_id,
CASE
WHEN ss.item_brand = u.favorite_brand THEN 'yes'
ELSE 'no'
END AS 2nd_item_fav_brand
FROM Users u
LEFT JOIN SecondSales ss ON u.user_id = ss.seller_id;
PRINT 'Final query completed';
44 changes: 44 additions & 0 deletions TournamentWinners.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
WITH PlayerScores AS (
SELECT
first_player AS player_id,
SUM(first_score) AS total_score
FROM Matches
GROUP BY first_player

UNION ALL

SELECT
second_player AS player_id,
SUM(second_score) AS total_score
FROM Matches
GROUP BY second_player
),
TotalScores AS (
SELECT
p.group_id,
ps.player_id,
SUM(ps.total_score) AS group_score
FROM PlayerScores ps
JOIN Players p
ON ps.player_id = p.player_id
GROUP BY p.group_id, ps.player_id
),
MaxScores AS (
SELECT
group_id,
MAX(group_score) AS max_score
FROM TotalScores
GROUP BY group_id
)
SELECT
ts.group_id,
ts.player_id
FROM TotalScores ts
JOIN MaxScores ms
ON ts.group_id = ms.group_id AND ts.group_score = ms.max_score
WHERE ts.player_id = (
SELECT MIN(player_id)
FROM TotalScores ts2
WHERE ts2.group_id = ts.group_id AND ts2.group_score = ts.group_score
)
ORDER BY ts.group_id;