This repository was archived by the owner on Mar 15, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathquery.sql
More file actions
122 lines (102 loc) · 4.99 KB
/
Copy pathquery.sql
File metadata and controls
122 lines (102 loc) · 4.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# What is the KDA of a player in a match?
(SELECT playerName, (individualKill + individualAssist) / individualDeath AS 'KDA'
FROM (SELECT playerName, datePlayed, championName, individualKill, individualAssist, individualDeath
FROM COMPOSE NATURAL JOIN (SELECT datePlayed, id, championName, individualKill, individualAssist, individualDeath
FROM STATISTICS NATURAL JOIN PLAY) game_stat) player_stat
WHERE individualDeath != 0)
UNION
(SELECT playerName, individualKill + individualAssist AS 'KDA'
FROM (SELECT playerName, datePlayed, championName, individualKill, individualAssist, individualDeath
FROM COMPOSE NATURAL JOIN (SELECT datePlayed, id, championName, individualKill, individualAssist, individualDeath
FROM STATISTICS NATURAL JOIN PLAY) game_stat) player_stat
WHERE individualDeath = 0);
# What is a player’s overall win rate with a champion?
SELECT playerName, matchWon / matchPlayed AS 'Win rate'
FROM PLAYERS;
# What is a player’s overall KDA with a champion?
(SELECT playerName, (totalKill + totalAssist) / totalDeath AS 'KDA'
FROM (SELECT playerName, championName, SUM(individualKill) AS 'totalKill', SUM(individualAssist) AS 'totalAssist', SUM(individualDeath) AS 'totalDeath'
FROM COMPOSE NATURAL JOIN STATISTICS
GROUP BY playerName, championName) player_stat
WHERE totalDeath != 0)
UNION
(SELECT playerName, totalKill + totalAssist AS 'KDA'
FROM (SELECT playerName, championName, SUM(individualKill) AS 'totalKill', SUM(individualAssist) AS 'totalAssist', SUM(individualDeath) AS 'totalDeath'
FROM COMPOSE NATURAL JOIN STATISTICS
GROUP BY playerName, championName) player_stat
WHERE totalDeath = 0);
# What is the player’s team composition (combination of champions) in a match?
SELECT id, championName
FROM COMPOSE
WHERE id = 1
ORDER BY id;
# What is the opponent’s team composition (combination of champions) in a match?
SELECT id, championName
FROM PLAY NATURAL JOIN COMPOSE
ORDER BY datePlayed;
# What is a player's overall win rate on a champion?
SELECT playerName, championName, (numWon / numPlayed) * 100 AS 'Champion win rate'
FROM (SELECT playerName, championName, COUNT(id) AS 'numPlayed'
FROM COMPOSE
GROUP BY playerName, championName) played NATURAL JOIN (SELECT playerName, championName, COUNT(p.id) AS 'numWon'
FROM PLAY p, COMPOSE c
WHERE p.teamWon = c.id
GROUP BY playerName, championName) won;
# How many times has a player played on a specific champion?
SELECT playerName, championName, COUNT(id) AS 'numPlayed'
FROM COMPOSE
GROUP BY playerName, championName;
# How many times has a player won on a specific champion?
SELECT playerName, championName, COUNT(p.id) AS 'numWon'
FROM PLAY p, COMPOSE c
WHERE p.teamWon = c.id
GROUP BY playerName, championName;
# What is the P/Kill of a player in a match?
SELECT playerName, datePlayed, (individualKill + individualAssist) / teamKill * 100 AS 'Kill participation'
FROM TEAM NATURAL JOIN (SELECT *
FROM COMPOSE NATURAL JOIN (SELECT *
FROM STATISTICS NATURAL JOIN PLAY) game_stat) player_stat;
# List all the games that are won
SELECT teamWon, datePlayed
FROM PLAY;
# List all the games that are lost
SELECT id, datePlayed
FROM PLAY
WHERE id != teamWon;
# List all the games with a specific champion
SELECT championName, datePlayed
FROM COMPOSE NATURAL JOIN PLAY
WHERE championName = 'Riven';
# List all the games played on a specific game mode
SELECT *
FROM MATCHES
WHERE modes = 'Summoner\'s Rift';
# What is a player's damage dealt participation?
SELECT playerName, info.damageDealt - avg_participation.avgDmgDealt AS 'Damage dealt compared with average'
FROM info, avg_participation;
# What is a player's damage taken participation?
SELECT playerName, info.damageTaken - avg_participation.avgDmgTaken AS 'Damage taken compared with average'
FROM info, avg_participation;
# What is a player's individual income participation?
SELECT playerName, info.individualIncome - avg_participation.avgIndividualIncome AS 'Individual income compared with average'
FROM info, avg_participation;
# What is a player's preferred role?
SELECT playerName, positions, COUNT(positions) AS 'Preferred role count'
FROM COMPOSE
GROUP BY playerName, positions;
# What is a player's preferred role in the team (protect, control, support, deal damage, take damage, assassinate, ...)?
SELECT playerName, positions, MAX(preferredRoleCount) AS 'Maximum preferred role count'
FROM (SELECT playerName, positions, COUNT(positions) AS 'preferredRoleCount'
FROM COMPOSE
GROUP BY playerName, positions) prefer_role
GROUP BY playerName, positions;
# What is a player's gold income in a match?
SELECT playerName, datePlayed, individualIncome
FROM info;
# What is a player's creep score compared with other players?
SELECT playerName, info.creepScore - avg_participation.avgCreepScore AS 'Individual creep score compared with average'
FROM info, avg_participation;
# What is a player’s game rating in a match?
SELECT playerName, datePlayed, rating
FROM info
WHERE playerName = 'Julien';