Created
November 2, 2016 16:10
-
-
Save not-inept/d5e27eb3c1201307f9e756a911496ccd to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- 1 | |
SELECT nameFirst AS `First Name`, nameLast AS `Last Name`, COUNT(allstarfull.playerID) AS `Appearances` | |
FROM allstarfull NATURAL JOIN master | |
GROUP BY playerID HAVING Appearances >= 5; | |
-- 2 | |
SELECT name | |
FROM allstarfull NATURAL JOIN teams | |
GROUP BY teamID | |
ORDER BY COUNT(allstarfull.teamID) DESC | |
LIMIT 10; | |
-- 3 | |
SELECT name AS `Team Name`, `Team Salary` | |
FROM ( | |
SELECT * | |
FROM ( | |
SELECT | |
yearID, | |
teamID, | |
SUM(salary) AS `Team Salary` | |
FROM salaries | |
GROUP BY yearID, teamID | |
ORDER BY yearID, `Team Salary` DESC | |
) AS `RES1` | |
GROUP BY yearID | |
) AS `RES2` JOIN teams ON `RES2`.yearID = teams.yearID AND `RES2`.teamID = teams.teamID; | |
-- 4 | |
SELECT `Year`, nameFirst AS `First Name`, nameLast AS `Last Name`, `Batting Average` | |
FROM ( | |
SELECT * | |
FROM ( | |
SELECT | |
yearID AS `Year`, | |
H / AB AS `Batting Average`, | |
playerID | |
FROM batting | |
WHERE AB > 100 AND yearID >= 1956 AND stint = 1 | |
GROUP BY `Year`, playerID | |
ORDER BY `Year`, `Batting Average` DESC | |
) AS `AllBatters` | |
WHERE EXISTS( | |
SELECT * | |
FROM ( | |
SELECT * | |
FROM ( | |
SELECT | |
yearID AS `YearT`, | |
H / AB AS `Batting AverageT`, | |
playerID | |
FROM batting | |
WHERE AB > 100 AND yearID >= 1956 AND stint = 1 | |
GROUP BY `YearT`, playerID | |
ORDER BY `YearT`, `Batting AverageT` DESC | |
) AS `Thing` | |
GROUP BY `YearT` | |
) AS `WinnyBatters` | |
WHERE `WinnyBatters`.`YearT` = `Year` AND `WinnyBatters`.`Batting AverageT` = `Batting Average` | |
) | |
) AS `RES` NATURAL JOIN master | |
ORDER BY `Year`, `Batting Average` DESC | |
-- 5 | |
SELECT nameFirst AS `First Name`, nameLast AS `Last Name`, `College` | |
FROM ( | |
SELECT playerID, schoolID AS "College" | |
FROM ( | |
SELECT DISTINCT | |
playerID, | |
schoolID | |
FROM ( | |
SELECT playerID | |
FROM halloffame | |
WHERE inducted = "Y" AND EXISTS( | |
SELECT halloffame.playerID | |
FROM collegeplaying | |
WHERE halloffame.playerID = collegeplaying.playerID | |
) | |
) AS `RES` NATURAL JOIN collegeplaying | |
) AS `RES2` | |
) AS `RES3` NATURAL JOIN master | |
-- 6 | |
SELECT AVG(`RES2`.`Appearances`) | |
FROM ( | |
SELECT | |
SUM(G_ALL) AS `Appearances` | |
FROM ( | |
SELECT playerID, G_All | |
FROM appearances | |
WHERE EXISTS( | |
SELECT playerID | |
FROM managers | |
WHERE appearances.playerID = managers.playerID | |
) | |
) AS `RES` | |
GROUP BY playerID | |
) AS `RES2` | |
-- 7 | |
SELECT `Winning Team Salary`, `Average Team Salary` | |
FROM ( | |
SELECT | |
yearID, | |
name AS `Team Name`, | |
`Winning Team Salary` | |
FROM ( | |
SELECT * | |
FROM ( | |
SELECT | |
yearID, | |
teamID, | |
SUM(salary) AS `Winning Team Salary` | |
FROM salaries | |
GROUP BY yearID, teamID | |
ORDER BY yearID, `Winning Team Salary` DESC | |
) AS `RES1` | |
) AS `RES2` NATURAL JOIN teams | |
WHERE WSWin = 'Y' | |
) AS `RESL` NATURAL JOIN ( | |
SELECT | |
yearID, | |
AVG(`Team Salary`) as `Average Team Salary` | |
FROM ( | |
SELECT | |
yearID, | |
teamID, | |
SUM(salary) AS `Team Salary` | |
FROM salaries | |
GROUP BY yearID, teamID | |
ORDER BY yearID, `Team Salary` DESC | |
) AS `RES1` | |
GROUP BY yearID | |
) AS `RESR`; | |
-- 8 | |
SELECT yearID, teamID, nameFirst as `First Name`, nameLast as `Last Name` | |
FROM ( | |
SELECT | |
managers.yearID, | |
managers.teamID, | |
playerID | |
FROM ( | |
SELECT | |
yearID, | |
teamID | |
FROM ( | |
-- GET ALL WINNERS | |
SELECT | |
yearID, | |
W AS `WinnersWins` | |
FROM teams | |
WHERE WSWin = 'Y' | |
) AS `WINNERS` NATURAL JOIN ( | |
-- GET ALL LOSERS | |
SELECT | |
yearID, | |
teamID, | |
W | |
FROM teams | |
WHERE WSWin != 'Y' | |
) AS `LOSERS` | |
WHERE W > WinnersWins | |
) AS `BigShots` | |
JOIN managers ON `BigShots`.yearID = managers.yearID AND `BigShots`.teamID = managers.teamID | |
) AS `WeGotDemIDs` LEFT JOIN master ON `WeGotDemIDs`.`playerID` = master.`playerID` | |
ORDER BY yearID; | |
-- 9 | |
SELECT yearID, teamID, park AS `Park Name`, attendance / G AS `Average Attendance` | |
FROM teams | |
WHERE | |
WSWin = 'Y' AND | |
G IS NOT NULL AND | |
attendance IS NOT NULL | |
-- 10 | |
SELECT yearID, teamID, park, `Winning Average Attendance`, `Non-Winning Average Attendance` | |
FROM ( | |
SELECT | |
yearID, | |
teamID, | |
park, | |
attendance / G AS `Winning Average Attendance` | |
FROM teams | |
WHERE WSWin = 'Y' AND | |
G IS NOT NULL AND | |
attendance IS NOT NULL | |
) AS `WhenWon` NATURAL JOIN ( | |
SELECT | |
teamID, | |
park, | |
SUM(attendance) / SUM(G) AS `Non-Winning Average Attendance` | |
FROM ( | |
SELECT | |
yearID, | |
teamID, | |
park, | |
attendance, | |
G | |
FROM teams | |
WHERE WSWin != 'Y' AND | |
G IS NOT NULL AND | |
attendance IS NOT NULL | |
) AS `NonWinners` | |
GROUP BY teamID, park | |
) AS `WhenLost` | |
ORDER BY yearID |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment