commit c07ea3da
Sime SQL lines
git-svn-id: http://oastat.googlecode.com/svn/trunk@10 a36be8df-c75f-1e49-46ad-4f0ee64bdc62
Changed files
| A | sql/select_statements.usql |
| A | sql/somesql.usql |
diff --git a/sql/select_statements.usql b/sql/select_statements.usql
new file mode 100644
index 0000000..fa21102
--- /dev/null
+++ b/sql/select_statements.usql
@@ -0,0 +1,90 @@
+SELECT * FROM OASTAT_GAMES ORDER BY gamenumber desc;
+SELECT nickname, guid, lastseen FROM OASTAT_PLAYERS ORDER BY lastseen DESC;
+SELECT nickname, guid, lastseen FROM OASTAT_PLAYERS ORDER BY nickname;
+SELECT * FROM OASTAT_PLAYERS, OASTAT_USERINFO WHERE OASTAT_PLAYERS.GUID = OASTAT_USERINFO.GUID;
+
+DELETE FROM OASTAT_GAMES WHERE second is null;
+SELECT * FROM OASTAT_GAMES WHERE SECOND IS NULL;
+
+--Most popular names
+SELECT nickname,count(0) as amount FROM OASTAT_PLAYERS group by nickname ORDER BY amount DESC ;
+
+--Kills in different gametypes (only dm at the moment):
+SELECT gametype, count(0) as kills FROM OASTAT_GAMES g, OASTAT_KILLS k WHERE g.gamenumber = k.gamenumber group by gametype;
+
+SELECT gametype, count(0) as times FROM OASTAT_GAMES GROUP BY gametype;
+
+--Table counts:
+--Number of games with at least one kill
+SELECT count(0) FROM OASTAT_GAMES g WHERE g.gamenumber in
+(SELECT DISTINCT k.gamenumber FROM oastat_kills k, oastat_players p WHERE k.attacker = p.guid) ;
+--Number of kills on the server
+SELECT count(0) FROM OASTAT_KILLS k, OASTAT_PLAYERS p WHERE k.attacker = p.guid;
+
+SELECT k.modtype, count(0) FROM OASTAT_KILLS k GROUP BY k.modtype ORDER BY k.modtype;
+
+--Count number of times there was played on dm4ish
+SELECT COUNT(0) FROM OASTAT_GAMES games
+WHERE games.gamenumber IN (SELECT DISTINCT gamenumber FROM OASTAT_KILLS)
+AND games.mapname = 'dm4ish';
+
+-- Top players on dm4ish
+SELECT p.nickname, count(0) AS kills FROM OASTAT_PLAYERS p, OASTAT_KILLS k
+WHERE k.attacker = p.guid AND k.gamenumber IN (SELECT gamenumber FROM OASTAT_GAMES WHERE mapname = 'dm4ish') GROUP BY p.guid,p.nickname ORDER BY kills DESC;
+
+--Top killers on the server
+SELECT p.nickname, count(0) FROM OASTAT_PLAYERS p, OASTAT_KILLS k
+WHERE k.attacker = p.guid GROUP BY p.guid, p.nickname ORDER BY count(0) DESC;
+
+-- Find GUID of sagoo007
+SELECT GUID FROM OASTAT_PLAYERS WHERE NICKNAME = 'Sago007';
+-- There might be more because of namestealers but the correct result is: "ED7E3235B252CA0BA15C0AA3A650D29D"
+
+-- Find Sago007's top pray:
+SELECT p.nickname, count(0) FROM OASTAT_PLAYERS p, OASTAT_KILLS k
+WHERE k.target = p.guid AND k.attacker ='ED7E3235B252CA0BA15C0AA3A650D29D'
+AND k.target != k.attacker --not suicides
+GROUP BY p.guid, p.nickname ORDER BY count(0) DESC;
+
+-- Find Sago007's top enemies
+SELECT p.nickname, count(0) FROM OASTAT_PLAYERS p, OASTAT_KILLS k
+WHERE k.attacker = p.guid AND k.target ='ED7E3235B252CA0BA15C0AA3A650D29D'
+AND k.target != k.attacker --not suicides
+GROUP BY p.guid, p.nickname ORDER BY count(0) DESC;
+
+--Total kills excluding suicides
+--Notice that inner joining attacker with the list of player guids is a way to exclude
+SELECT COUNT(0) FROM OASTAT_KILLS k, OASTAT_PLAYERS p WHERE k.attacker = p.guid and k.attacker != k.target;
+
+--Totla kills excluding suicides and bots
+SELECT COUNT(0) FROM OASTAT_KILLS k WHERE LENGTH(k.attacker)=32 AND k.attacker != k.target;
+
+-- ALL kills with names of both killer and victim
+SELECT pa.nickname Killer, pt.nickname Victim FROM OASTAT_KILLS k, OASTAT_PLAYERS pa, OASTAT_PLAYERS pt
+WHERE k.attacker = pa.guid AND k.target = pt.guid AND k.attacker != k.target;
+
+-- ALL kills with names of both killer and victim
+SELECT pa.nickname Killer, pt.nickname Victim FROM OASTAT_KILLS k, OASTAT_PLAYERS pa, OASTAT_PLAYERS pt
+WHERE k.attacker = pa.guid AND k.target = pt.guid AND k.attacker != k.target ORDER BY k.eventnumber desc;
+
+-- Games on the different maps with avarage gametime, demand at least one kill
+SELECT g.mapname,count(0),sum(g.second)/count(0) as avgtime
+FROM oastat_games g
+WHERE g.gamenumber in
+(SELECT DISTINCT k.gamenumber FROM oastat_kills k, oastat_players p WHERE k.attacker = p.guid)
+GROUP BY g.mapname;
+
+-- Maps with most kills:
+SELECT g.mapname,count(0)
+FROM oastat_games g, oastat_kills k, oastat_players p
+WHERE g.gamenumber = k.gamenumber AND k.attacker = p.guid
+GROUP BY g.mapname ORDER BY count(0) DESC;
+
+-- Most dangarous maps: most suicides
+SELECT g.mapname,count(0)
+FROM oastat_games g, oastat_kills k
+WHERE g.gamenumber = k.gamenumber AND k.attacker NOT IN ( SELECT guid FROM oastat_players)
+GROUP BY g.mapname ORDER BY count(0) DESC;
+
+--Favorite models:
+SELECT p.model, count(0) FROM oastat_players p GROUP BY p.model ORDER BY count(0) DESC;
diff --git a/sql/somesql.usql b/sql/somesql.usql
new file mode 100644
index 0000000..4bc6001
--- /dev/null
+++ b/sql/somesql.usql
@@ -0,0 +1,116 @@
+INSERT INTO OASTAT_GAMES(gametype,mapname,basegame) VALUES (0,'dm4ish','baseoa');
+
+SELECT * FROM OASTAT_GAMES;
+SELECT * FROM OASTAT_PLAYERS;
+SELECT * FROM OASTAT_PLAYERS, OASTAT_USERINFO WHERE OASTAT_PLAYERS.GUID = OASTAT_USERINFO.GUID;
+
+DELETE FROM OASTAT_PLAYERS WHERE LENGTH(GUID)<31;
+
+DELETE FROM OASTAT_PLAYERS WHERE GUID LIKE '^3%';
+
+--Table counts:
+--Number of games with at least one kill
+SELECT count(0) FROM OASTAT_GAMES g WHERE g.gamenumber in
+(SELECT DISTINCT k.gamenumber FROM oastat_kills k, oastat_players p WHERE k.attacker = p.guid)
+--Number of kills on the server
+SELECT count(0) FROM OASTAT_KILLS k, OASTAT_PLAYERS p WHERE k.attacker = p.guid;
+
+--Count number of times there was played on dm4ish
+SELECT COUNT(0) FROM OASTAT_GAMES games,OASTAT_USERINFO info
+WHERE games.gamenumber = info.gamenumber AND games.mapname = 'dm4ish';
+
+--Count total kills on the server
+SELECT p.nickname, count(0) FROM OASTAT_PLAYERS p, OASTAT_KILLS k
+WHERE k.attacker = p.guid GROUP BY p.guid, p.nickname ORDER BY count(0) DESC;
+
+-- Find GUID of sagoo007
+SELECT GUID FROM OASTAT_PLAYERS WHERE NICKNAME = 'Sago007';
+-- There might be more because of namestealers but the correct result is: "ED7E3235B252CA0BA15C0AA3A650D29D"
+
+-- Find Sago007's top pray:
+SELECT p.nickname, count(0) FROM OASTAT_PLAYERS p, OASTAT_KILLS k
+WHERE k.target = p.guid AND k.attacker ='ED7E3235B252CA0BA15C0AA3A650D29D'
+AND k.target != k.attacker --not suicides
+GROUP BY p.guid, p.nickname ORDER BY count(0) DESC;
+
+-- Find Sago007's top enemies
+SELECT p.nickname, count(0) FROM OASTAT_PLAYERS p, OASTAT_KILLS k
+WHERE k.attacker = p.guid AND k.target ='ED7E3235B252CA0BA15C0AA3A650D29D'
+AND k.target != k.attacker --not suicides
+GROUP BY p.guid, p.nickname ORDER BY count(0) DESC;
+
+--Total kills excluding suicides
+--Notice that inner joining attacker with the list of player guids is a way to exclude
+SELECT COUNT(0) FROM OASTAT_KILLS k, OASTAT_PLAYERS p WHERE k.attacker = p.guid and k.attacker != k.target;
+
+--Totla kills excluding suicides and bots
+SELECT COUNT(0) FROM OASTAT_KILLS k WHERE LENGTH(k.attacker)=32 AND k.attacker != k.target;
+
+-- ALL kills with names of both killer and victim
+SELECT pa.nickname Killer, pt.nickname Victim FROM OASTAT_KILLS k, OASTAT_PLAYERS pa, OASTAT_PLAYERS pt
+WHERE k.attacker = pa.guid AND k.target = pt.guid AND k.attacker != k.target;
+
+-- Games on the different maps with avarage gametime, demand at least one kill
+SELECT g.mapname,count(0),sum(g.second)/count(0) as avgtime
+FROM oastat_games g
+WHERE g.gamenumber in
+(SELECT DISTINCT k.gamenumber FROM oastat_kills k, oastat_players p WHERE k.attacker = p.guid)
+GROUP BY g.mapname;
+
+--Favorite models:
+SELECT p.model, count(0) FROM oastat_players p GROUP BY p.model ORDER BY count(0) DESC;
+
+INSERT INTO OASTAT_PLAYERS(guid,nickname) VALUES ('SAGOGUID','sago007');
+INSERT INTO OASTAT_PLAYERS(guid,nickname) VALUES ('SOMEGUID','Someone1');
+INSERT INTO OASTAT_PLAYERS(guid,nickname) VALUES ('SOMEGUID2','Someone2');
+
+INSERT INTO OASTAT_USERINFO(gamenumber,guid,team,model) VALUES (2,'SAGOGUID',0,'Sarge/default');
+INSERT INTO OASTAT_USERINFO(gamenumber,guid,team,model) VALUES (3,'SAGOGUID',0,'Sarge/default');
+
+
+INSERT INTO oastat_players(guid,nickname,lastseen,isBot, model, headmodel) VALUES ('Arivederchy','Arivederchy',now(),false,'beret/blue','beret/blue');
+
+UPDATE oastat_players SET nickname = 'MyNick',lastseen = now(),isBot = false, model = 'beret/blue', headmodel = 'beret/blue' WHERE guid = 'Arivederchy';
+
+INSERT INTO oastat_userinfo(gamenumber,second,guid,team,model,skill) VALUES (2,11336,'Bras nao atira en BR',-1,'',-1);
+
+UPDATE oastat_games SET second=100,time = now() where gamenumber = 1;
+
+INSERT INTO oastat_kills(gamenumber,second,attacker,target,modtype) VALUES(2,54871,'Leonard','UnnamedPlayer',3);
+
+--Larger amount of data
+INSERT INTO oastat_games(gametype, mapname, basegame) VALUES (0,'aggressor','baseoa');
+INSERT INTO oastat_players(guid,nickname,lastseen,isBot, model, headmodel) VALUES ('DAB4544C5FBEBC52E649ABC9E94601EB','Eltarin',now(),false,'assassin/default','assassin/default');
+INSERT INTO oastat_userinfo(gamenumber,second,guid,team,model,skill) VALUES (3,0,'DAB4544C5FBEBC52E649ABC9E94601EB',0,'assassin/default',-1);
+INSERT INTO oastat_players(guid,nickname,lastseen,isBot, model, headmodel) VALUES ('91CFBFDE8E762A07BA2008065672473D','Kira',now(),false,'major/blue','major/blue');
+INSERT INTO oastat_userinfo(gamenumber,second,guid,team,model,skill) VALUES (3,0,'91CFBFDE8E762A07BA2008065672473D',0,'major/blue',-1);
+INSERT INTO oastat_players(guid,nickname,lastseen,isBot, model, headmodel) VALUES ('889BBF46C42203FBA84B8ADE4B505F8A','Sp1ral',now(),false,'sarge','sarge');
+INSERT INTO oastat_userinfo(gamenumber,second,guid,team,model,skill) VALUES (3,0,'889BBF46C42203FBA84B8ADE4B505F8A',0,'sarge',-1);
+INSERT INTO oastat_players(guid,nickname,lastseen,isBot, model, headmodel) VALUES ('36CF8E170B3B273A2A8782DB5785E5D1','Silver',now(),false,'marvin/darthm','marvin/darthm');
+INSERT INTO oastat_userinfo(gamenumber,second,guid,team,model,skill) VALUES (3,0,'36CF8E170B3B273A2A8782DB5785E5D1',0,'marvin/darthm',-1);
+--INSERT INTO oastat_players(guid,nickname,lastseen,isBot, model, headmodel) VALUES ('91CFBFDE8E762A07BA2008065672473D','Kira',now(),false,'major/blue','major/blue');
+--INSERT INTO oastat_userinfo(gamenumber,second,guid,team,model,skill) VALUES (4,4,'91CFBFDE8E762A07BA2008065672473D',0,'major/blue',-1);
+--INSERT INTO oastat_players(guid,nickname,lastseen,isBot, model, headmodel) VALUES ('36CF8E170B3B273A2A8782DB5785E5D1','Silver',now(),false,'marvin/darthm','marvin/darthm');
+--INSERT INTO oastat_userinfo(gamenumber,second,guid,team,model,skill) VALUES (4,4,'36CF8E170B3B273A2A8782DB5785E5D1',0,'marvin/darthm',-1);
+INSERT INTO oastat_kills(gamenumber,second,attacker,target,modtype) VALUES(3,4,'WORLD','36CF8E170B3B273A2A8782DB5785E5D1',20);
+INSERT INTO oastat_userinfo(gamenumber,second,guid,team,model,skill) VALUES (3,4,'36CF8E170B3B273A2A8782DB5785E5D1',-1,'',-1);
+--INSERT INTO oastat_players(guid,nickname,lastseen,isBot, model, headmodel) VALUES ('DAB4544C5FBEBC52E649ABC9E94601EB','Eltarin',now(),false,'assassin/default','assassin/default');
+--INSERT INTO oastat_userinfo(gamenumber,second,guid,team,model,skill) VALUES (3,6,'DAB4544C5FBEBC52E649ABC9E94601EB',0,'assassin/default',-1);
+INSERT INTO oastat_kills(gamenumber,second,attacker,target,modtype) VALUES(3,9,'889BBF46C42203FBA84B8ADE4B505F8A','91CFBFDE8E762A07BA2008065672473D',10);
+
+PREPARE addkill(int,int,text,text,int) AS INSERT INTO oastat_kills(gamenumber,second,attacker,target,modtype) VALUES($1,$2,$3,$4,$5);
+PREPARE addgame(int,text,text) AS INSERT INTO oastat_games(gametype, mapname, basegame) VALUES ($1,$2,$3);
+PREPARE endgame(int,int) AS UPDATE oastat_games SET second=$2,time = now() where gamenumber = $1;
+PREPARE addplayer(text,text,boolean,text,text) AS INSERT INTO oastat_players(guid,nickname,lastseen,isBot, model, headmodel) VALUES ($1,$2,now(),$3,$4,$5);
+PREPARE updateplayer(text,text,boolean,text,text) AS UPDATE oastat_players SET nickname = $2,lastseen = now(),isBot = $3, model = $4, headmodel = $5 WHERE guid = $6;
+PREPARE adduserinfo(int,int,text,int,text,int) AS INSERT INTO oastat_userinfo(gamenumber,second,guid,team,model,skill) VALUES ($1,$2,$3,$4,$5,$6);
+PREPARE addcapture(int,int,text,int) AS INSERT INTO oastat_captures(gamenumber,second,player,team) VALUES ($1,$2,$3,$4);
+PREPARE addaward(int,int,text,int) AS INSERT INTO oastat_awards(gamenumber,second,player,award) VALUES ($1,$2,$3,$4);
+
+EXECUTE addkill(3,9,'889BBF46C42203FBA84B8ADE4B505F8A','91CFBFDE8E762A07BA2008065672473D',10);
+
+SELECT MAX(gamenumber) FROM OASTAT_GAMES;
+
+INSERT INTO oastat_games(gametype, mapname, basegame) VALUES (0,'dm4ish','baseoa');
+
+INSERT INTO oastat_userinfo(gamenumber,second,guid,team,model,skill) VALUES (4857,14989,'^3^^8/Eli^7te/^3-^3^^8VeRt^7!go^3*',0,'tony/default',-1);
\ No newline at end of file