Nice job Kit! I liked it.

Edit: Maybe we should start a campaign to host a competition in every state of the U.S?

Thanks! And yeah, I don't mind a little bit of travel.

One more fun heat map! This one is the average of all 3x3 solves done by citizens of each country.

http://www.openheatmap.com/view.html?map=DisfurnishmentAbasesChlorination

Here's the list - note that I limited this to countries with more than 1000 solves, but the heat map includes all countries.

[table="class: grid"]
[tr]
[td]Country[/td]
[td]Average[/td]
[td]NumSolves[/td]
[/tr]
[tr]
[td]Taiwan[/td]
[td]18.54[/td]
[td]13729[/td]
[/tr]
[tr]
[td]Vietnam[/td]
[td]19.93[/td]
[td]4078[/td]
[/tr]
[tr]
[td]Austria[/td]
[td]20[/td]
[td]4141[/td]
[/tr]
[tr]
[td]Thailand[/td]
[td]20.75[/td]
[td]8861[/td]
[/tr]
[tr]
[td]Korea[/td]
[td]21.27[/td]
[td]8560[/td]
[/tr]
[tr]
[td]Hong Kong[/td]
[td]21.33[/td]
[td]3167[/td]
[/tr]
[tr]
[td]Philippines[/td]
[td]21.33[/td]
[td]13563[/td]
[/tr]
[tr]
[td]Slovenia[/td]
[td]21.36[/td]
[td]1671[/td]
[/tr]
[tr]
[td]Russia[/td]
[td]21.38[/td]
[td]13435[/td]
[/tr]
[tr]
[td]Italy[/td]
[td]21.94[/td]
[td]17879[/td]
[/tr]
[tr]
[td]Hungary[/td]
[td]22.11[/td]
[td]12624[/td]
[/tr]
[tr]
[td]Poland[/td]
[td]22.26[/td]
[td]49396[/td]
[/tr]
[tr]
[td]United Kingdom[/td]
[td]22.47[/td]
[td]11938[/td]
[/tr]
[tr]
[td]Indonesia[/td]
[td]22.68[/td]
[td]19541[/td]
[/tr]
[tr]
[td]Japan[/td]
[td]22.79[/td]
[td]30099[/td]
[/tr]
[tr]
[td]Germany[/td]
[td]22.96[/td]
[td]38656[/td]
[/tr]
[tr]
[td]Switzerland[/td]
[td]22.96[/td]
[td]1556[/td]
[/tr]
[tr]
[td]Singapore[/td]
[td]23.26[/td]
[td]1308[/td]
[/tr]
[tr]
[td]Malaysia[/td]
[td]24.16[/td]
[td]7288[/td]
[/tr]
[tr]
[td]Belgium[/td]
[td]24.71[/td]
[td]6943[/td]
[/tr]
[tr]
[td]China[/td]
[td]24.92[/td]
[td]78554[/td]
[/tr]
[tr]
[td]Finland[/td]
[td]24.92[/td]
[td]3988[/td]
[/tr]
[tr]
[td]Netherlands[/td]
[td]25.12[/td]
[td]15229[/td]
[/tr]
[tr]
[td]Denmark[/td]
[td]25.62[/td]
[td]6393[/td]
[/tr]
[tr]
[td]Belarus[/td]
[td]25.63[/td]
[td]2715[/td]
[/tr]
[tr]
[td]Czech Republic[/td]
[td]26.22[/td]
[td]1137[/td]
[/tr]
[tr]
[td]France[/td]
[td]27.01[/td]
[td]27866[/td]
[/tr]
[tr]
[td]Colombia[/td]
[td]27.25[/td]
[td]7555[/td]
[/tr]
[tr]
[td]Sweden[/td]
[td]27.58[/td]
[td]11246[/td]
[/tr]
[tr]
[td]Chile[/td]
[td]27.81[/td]
[td]7412[/td]
[/tr]
[tr]
[td]Peru[/td]
[td]28[/td]
[td]9741[/td]
[/tr]
[tr]
[td]Australia[/td]
[td]28.03[/td]
[td]8735[/td]
[/tr]
[tr]
[td]Mexico[/td]
[td]28.17[/td]
[td]7881[/td]
[/tr]
[tr]
[td]Canada[/td]
[td]28.54[/td]
[td]24836[/td]
[/tr]
[tr]
[td]USA[/td]
[td]28.63[/td]
[td]137216[/td]
[/tr]
[tr]
[td]Argentina[/td]
[td]28.81[/td]
[td]2213[/td]
[/tr]
[tr]
[td]Ukraine[/td]
[td]28.81[/td]
[td]11035[/td]
[/tr]
[tr]
[td]Spain[/td]
[td]28.9[/td]
[td]23113[/td]
[/tr]
[tr]
[td]New Zealand[/td]
[td]29.04[/td]
[td]1985[/td]
[/tr]
[tr]
[td]Norway[/td]
[td]30.27[/td]
[td]5708[/td]
[/tr]
[tr]
[td]Turkey[/td]
[td]30.61[/td]
[td]1870[/td]
[/tr]
[tr]
[td]Iran[/td]
[td]30.86[/td]
[td]5779[/td]
[/tr]
[tr]
[td]Dominican Republic[/td]
[td]32.65[/td]
[td]1445[/td]
[/tr]
[tr]
[td]Venezuela[/td]
[td]32.89[/td]
[td]2083[/td]
[/tr]
[tr]
[td]Romania[/td]
[td]33.79[/td]
[td]4870[/td]
[/tr]
[tr]
[td]Israel[/td]
[td]35.32[/td]
[td]1695[/td]
[/tr]
[tr]
[td]Brazil[/td]
[td]35.5[/td]
[td]24821[/td]
[/tr]
[tr]
[td]Guatemala[/td]
[td]40.89[/td]
[td]1624[/td]
[/tr]
[tr]
[td]India[/td]
[td]43.96[/td]
[td]30819[/td]
[/tr]
[/table]

SELECT personCountry, ROUND((IFNULL(AVG(NULLIF(NULLIF(NULLIF(value1, 0), -1), -2))*COUNT(NULLIF(NULLIF(NULLIF(value1, 0), -1), -2)),0) + IFNULL(AVG(NULLIF(NULLIF(NULLIF(value2, 0), -1), -2))*COUNT(NULLIF(NULLIF(NULLIF(value2, 0), -1), -2)),0) + IFNULL(AVG(NULLIF(NULLIF(NULLIF(value3, 0), -1), -2))*COUNT(NULLIF(NULLIF(NULLIF(value3, 0), -1), -2)),0) + IFNULL(AVG(NULLIF(NULLIF(NULLIF(value4, 0), -1), -2))*COUNT(NULLIF(NULLIF(NULLIF(value4, 0), -1), -2)),0) + IFNULL(AVG(NULLIF(NULLIF(NULLIF(value5, 0), -1), -2))*COUNT(NULLIF(NULLIF(NULLIF(value5, 0), -1), -2)),0))/(100*(IFNULL(COUNT(NULLIF(NULLIF(NULLIF(value1, 0), -1), -2)),0) + IFNULL(COUNT(NULLIF(NULLIF(NULLIF(value2, 0), -1), -2)),0) + IFNULL(COUNT(NULLIF(NULLIF(NULLIF(value3, 0), -1), -2)),0) + IFNULL(COUNT(NULLIF(NULLIF(NULLIF(value4, 0), -1), -2)),0) + IFNULL(COUNT(NULLIF(NULLIF(NULLIF(value5, 0), -1), -2)),0))), 2) AS Average, IFNULL(COUNT(NULLIF(NULLIF(NULLIF(value1, 0), -1), -2)),0) + IFNULL(COUNT(NULLIF(NULLIF(NULLIF(value2, 0), -1), -2)),0) + IFNULL(COUNT(NULLIF(NULLIF(NULLIF(value3, 0), -1), -2)),0) + IFNULL(COUNT(NULLIF(NULLIF(NULLIF(value4, 0), -1), -2)),0) + IFNULL(COUNT(NULLIF(NULLIF(NULLIF(value5, 0), -1), -2)),0) AS NumSolves FROM results WHERE eventId = '333' GROUP BY personCountry

Again, done on data from data from WCA_export485_20141008.
 
Last edited:
The "Really ugly SQL" did warn me, but I didn't believe it until I saw it and was like "UÄÄÄÄÄ...." :p

Code:
SELECT personCountryId, round((totaltime/NumSolves) / 100, 2) Average, NumSolves
FROM(
SELECT
  personCountryId,
  sum((value1>0)+(value2>0)+(value3>0)+(value4>0)+(value5>0)) NumSolves,
  sum(value1*(value1>0)+value2*(value2>0)+value3*(value3>0)+value4*(value4>0)+value5*(value5>0)) totaltime
FROM Results
WHERE eventId = '333'
GROUP BY personCountryId) tmp

Why is it "personCountry" in your database, btw, not "personCountryId"? Did you change that?
 
Last edited:
The "Really ugly SQL" did warn me, but I didn't believe it until I saw it :p

Code:
SELECT personCountryId, round((totaltime/NumSolves) / 100, 2) Average, NumSolves
FROM(
SELECT
  personCountryId,
  sum((value1>0)+(value2>0)+(value3>0)+(value4>0)+(value5>0)) NumSolves,
  sum(value1*(value1>0)+value2*(value2>0)+value3*(value3>0)+value4*(value4>0)+value5*(value5>0)) totaltime
FROM Results
WHERE eventId = '333'
GROUP BY personCountryId) tmp

Why is it "personCountry" in your database, btw, not "personCountryId"? Did you change that?

I loaded the tsv files into python via sqlite3. I'm doing all of this for a class, so I had to conform to the methods I learned rather than loading the sql export, and I guess I truncated a few field names by accident.

Never realized that you could filter out DNS/DNF with a >0 trick though, I'll keep that in mind. Did you get a value with Trinidad and Tobago with your SQL? There was only one average and it had a DNF in value2, so on an older SQL script I made, value2 would come up null and thus make the entire average for the country null.
 
Thanks for inspiration.

Using data from WCA_export478_20140929 and Stefan's WCA Statistics Tools.

[TABLE="class:grid,align:left"]
[TR][TD]Event[/TD][TD]Kind[/TD][TD]Cuber[/TD][TD]World Rank[/TD][TD]Result[/TD][/TR]
[TR][TD]Megaminx[/TD][TD]Average[/TD][TD]Yu Da-Hyun[/TD][TD="align:right"]4[/TD][TD="align:right"]48.86[/TD][/TR]
[TR][TD]6x6 Cube[/TD][TD]Average[/TD][TD]Emily Wang[/TD][TD="align:right"]6[/TD][TD="align:right"]2:06.37[/TD][/TR]
[TR][TD]Pyraminx[/TD][TD]Average[/TD][TD]Yi Wang (王旖)[/TD][TD="align:right"]6[/TD][TD="align:right"]3.40[/TD][/TR]
[TR][TD]6x6 Cube[/TD][TD]Single[/TD][TD]Emily Wang[/TD][TD="align:right"]8[/TD][TD="align:right"]2:02.41[/TD][/TR]
[TR][TD]Megaminx[/TD][TD]Single[/TD][TD]Yu Da-Hyun[/TD][TD="align:right"]8[/TD][TD="align:right"]46.09[/TD][/TR]
[TR][TD]Pyraminx[/TD][TD]Single[/TD][TD]Yi Wang (王旖)[/TD][TD="align:right"]9[/TD][TD="align:right"]2.12[/TD][/TR]
[TR][TD]3x3 fewest moves[/TD][TD]Single[/TD][TD]Laura Ohrndorf[/TD][TD="align:right"]10[/TD][TD="align:right"]24[/TD][/TR]
[TR][TD]Megaminx[/TD][TD]Average[/TD][TD]Emily Wang[/TD][TD="align:right"]15[/TD][TD="align:right"]54.96[/TD][/TR]
[TR][TD]Rubik's Clock[/TD][TD]Average[/TD][TD]Laura Ohrndorf[/TD][TD="align:right"]17[/TD][TD="align:right"]7.65[/TD][/TR]
[TR][TD]Rubik's Clock[/TD][TD]Single[/TD][TD]Laura Ohrndorf[/TD][TD="align:right"]21[/TD][TD="align:right"]6.31[/TD][/TR]
[TR][TD]3x3 multi blind[/TD][TD]Single[/TD][TD]Shiori Sato (佐藤詩織)[/TD][TD="align:right"]22[/TD][TD="align:right"]17/19 (59:51)[/TD][/TR]
[TR][TD]Megaminx[/TD][TD]Single[/TD][TD]Emily Wang[/TD][TD="align:right"]22[/TD][TD="align:right"]51.59[/TD][/TR]
[TR][TD]5x5 Cube[/TD][TD]Single[/TD][TD]Emily Wang[/TD][TD="align:right"]34[/TD][TD="align:right"]1:04.63[/TD][/TR]
[TR][TD]5x5 Cube[/TD][TD]Average[/TD][TD]Emily Wang[/TD][TD="align:right"]35[/TD][TD="align:right"]1:11.55[/TD][/TR]
[TR][TD]Rubik's Clock[/TD][TD]Average[/TD][TD]Nikolett Placskó[/TD][TD="align:right"]37[/TD][TD="align:right"]8.43[/TD][/TR]
[TR][TD]Megaminx[/TD][TD]Single[/TD][TD]Karina Grandjean Beck[/TD][TD="align:right"]37[/TD][TD="align:right"]54.84[/TD][/TR]
[TR][TD]3x3 blindfolded[/TD][TD]Average[/TD][TD]Liliya Kamaltdinova[/TD][TD="align:right"]40[/TD][TD="align:right"]58.97[/TD][/TR]
[TR][TD]7x7 Cube[/TD][TD]Average[/TD][TD]Emily Wang[/TD][TD="align:right"]40[/TD][TD="align:right"]3:39.57[/TD][/TR]
[TR][TD]Megaminx[/TD][TD]Average[/TD][TD]Karina Grandjean Beck[/TD][TD="align:right"]40[/TD][TD="align:right"]1:03.15[/TD][/TR]
[TR][TD]3x3 with feet[/TD][TD]Average[/TD][TD]Oksana Tyvodar[/TD][TD="align:right"]44[/TD][TD="align:right"]56.61[/TD][/TR]
[TR][TD]7x7 Cube[/TD][TD]Single[/TD][TD]Samantha Raskind[/TD][TD="align:right"]44[/TD][TD="align:right"]3:29.94[/TD][/TR]
[TR][TD]7x7 Cube[/TD][TD]Average[/TD][TD]Samantha Raskind[/TD][TD="align:right"]48[/TD][TD="align:right"]3:44.15[/TD][/TR]
[TR][TD]Rubik's Clock[/TD][TD]Single[/TD][TD]Nikolett Placskó[/TD][TD="align:right"]48[/TD][TD="align:right"]7.12[/TD][/TR]
[TR][TD]Megaminx[/TD][TD]Single[/TD][TD]Kalina Brzezińska[/TD][TD="align:right"]48[/TD][TD="align:right"]56.68[/TD][/TR]
[TR][TD]4x4 Cube[/TD][TD]Single[/TD][TD]Emily Wang[/TD][TD="align:right"]49[/TD][TD="align:right"]31.17[/TD][/TR]
[TR][TD]4x4 Cube[/TD][TD]Average[/TD][TD]Emily Wang[/TD][TD="align:right"]49[/TD][TD="align:right"]36.00[/TD][/TR]
[TR][TD]2x2 Cube[/TD][TD]Average[/TD][TD]Yui Tomita (富田唯依)[/TD][TD="align:right"]50[/TD][TD="align:right"]2.56[/TD][/TR]
[TR][TD]7x7 Cube[/TD][TD]Single[/TD][TD]Emily Wang[/TD][TD="align:right"]50[/TD][TD="align:right"]3:31.58[/TD][/TR]
[TR][TD]3x3 with feet[/TD][TD]Single[/TD][TD]Oksana Tyvodar[/TD][TD="align:right"]52[/TD][TD="align:right"]51.38[/TD][/TR]
[TR][TD]3x3 with feet[/TD][TD]Average[/TD][TD]Mika Muranushi (村主美佳)[/TD][TD="align:right"]52[/TD][TD="align:right"]1:02.44[/TD][/TR]
[TR][TD]3x3 blindfolded[/TD][TD]Single[/TD][TD]Liliya Kamaltdinova[/TD][TD="align:right"]53[/TD][TD="align:right"]42.19[/TD][/TR]
[TR][TD]5x5 blindfolded[/TD][TD]Single[/TD][TD]Liliya Kamaltdinova[/TD][TD="align:right"]54[/TD][TD="align:right"]17:26.00[/TD][/TR]
[TR][TD]3x3 with feet[/TD][TD]Single[/TD][TD]Rafaela Oliveira da Silva[/TD][TD="align:right"]60[/TD][TD="align:right"]56.43[/TD][/TR]
[TR][TD]Square-1[/TD][TD]Single[/TD][TD]Alexandra Daryl Ariawan[/TD][TD="align:right"]61[/TD][TD="align:right"]13.52[/TD][/TR]
[TR][TD]3x3 with feet[/TD][TD]Single[/TD][TD]Mika Muranushi (村主美佳)[/TD][TD="align:right"]63[/TD][TD="align:right"]57.08[/TD][/TR]
[TR][TD]3x3 blindfolded[/TD][TD]Single[/TD][TD]Sesi Cadmus[/TD][TD="align:right"]65[/TD][TD="align:right"]46.71[/TD][/TR]
[TR][TD]4x4 blindfolded[/TD][TD]Single[/TD][TD]Liliya Kamaltdinova[/TD][TD="align:right"]67[/TD][TD="align:right"]7:21.33[/TD][/TR]
[TR][TD]3x3 multi blind[/TD][TD]Single[/TD][TD]Sesi Cadmus[/TD][TD="align:right"]69[/TD][TD="align:right"]9/10 (46:34)[/TD][/TR]
[TR][TD]Megaminx[/TD][TD]Average[/TD][TD]Kalina Brzezińska[/TD][TD="align:right"]71[/TD][TD="align:right"]1:09.06[/TD][/TR]
[TR][TD]3x3 multi blind[/TD][TD]Single[/TD][TD]Sanae Omyo (大名佐苗)[/TD][TD="align:right"]76[/TD][TD="align:right"]9/10 (55:01)[/TD][/TR]
[TR][TD]Pyraminx[/TD][TD]Single[/TD][TD]Karina Grandjean Beck[/TD][TD="align:right"]76[/TD][TD="align:right"]2.88[/TD][/TR]
[TR][TD]Megaminx[/TD][TD]Single[/TD][TD]Sydney Weaver[/TD][TD="align:right"]77[/TD][TD="align:right"]1:01.50[/TD][/TR]
[TR][TD]3x3 blindfolded[/TD][TD]Single[/TD][TD]Jael Riggenbach[/TD][TD="align:right"]80[/TD][TD="align:right"]51.45[/TD][/TR]
[TR][TD]3x3 with feet[/TD][TD]Average[/TD][TD]Rafaela Oliveira da Silva[/TD][TD="align:right"]80[/TD][TD="align:right"]1:14.31[/TD][/TR]
[TR][TD]Square-1[/TD][TD]Single[/TD][TD]Zoé de Moffarts[/TD][TD="align:right"]80[/TD][TD="align:right"]14.13[/TD][/TR]
[TR][TD]3x3 multi blind[/TD][TD]Single[/TD][TD]Michelle Nataniel Yugie[/TD][TD="align:right"]81[/TD][TD="align:right"]8/8 (57:12)[/TD][/TR]
[TR][TD]Pyraminx[/TD][TD]Single[/TD][TD]Gabriela Gierasimiuk[/TD][TD="align:right"]81[/TD][TD="align:right"]2.93[/TD][/TR]
[TR][TD]Skewb[/TD][TD]Single[/TD][TD]Franciszka Cybulska[/TD][TD="align:right"]85[/TD][TD="align:right"]4.14[/TD][/TR]
[TR][TD]3x3 multi blind[/TD][TD]Single[/TD][TD]Liliya Kamaltdinova[/TD][TD="align:right"]86[/TD][TD="align:right"]8/9 (35:54)[/TD][/TR]
[TR][TD]6x6 Cube[/TD][TD]Average[/TD][TD]Samantha Raskind[/TD][TD="align:right"]87[/TD][TD="align:right"]2:42.28[/TD][/TR]
[TR][TD]5x5 blindfolded[/TD][TD]Single[/TD][TD]Mimmi Leckius[/TD][TD="align:right"]91[/TD][TD="align:right"]28:02.00[/TD][/TR]
[TR][TD]Megaminx[/TD][TD]Average[/TD][TD]Xinrui Li (李昕蕊)[/TD][TD="align:right"]92[/TD][TD="align:right"]1:12.02[/TD][/TR]
[TR][TD]3x3 multi blind[/TD][TD]Single[/TD][TD]Mimmi Leckius[/TD][TD="align:right"]94[/TD][TD="align:right"]7/7 (47:52)[/TD][/TR]
[TR][TD]6x6 Cube[/TD][TD]Single[/TD][TD]Samantha Raskind[/TD][TD="align:right"]94[/TD][TD="align:right"]2:31.24[/TD][/TR]
[TR][TD]Megaminx[/TD][TD]Average[/TD][TD]Sydney Weaver[/TD][TD="align:right"]96[/TD][TD="align:right"]1:12.34[/TD][/TR]
[TR][TD]Square-1[/TD][TD]Average[/TD][TD]Alexandra Daryl Ariawan[/TD][TD="align:right"]97[/TD][TD="align:right"]20.63[/TD][/TR]
[/TABLE]

Code:
[NOPARSE]SELECT eventId Event, Kind, personId Cuber, worldRank 'World Rank', best 'Result[R]'
FROM (
SELECT personId, eventId, 'Single' Kind, worldRank, best FROM RanksSingle UNION ALL
SELECT personId, eventId, 'Average' Kind, worldRank, best FROM RanksAverage
) tmp join Persons on Persons.id=personId
WHERE gender='f' and worldRank<=100
ORDER BY worldRank, eventId, best;[/NOPARSE]
Oh cool, glad I inspired you. And seeing that list makes me want to get top 100 in more events
 
I loaded the tsv files into python via sqlite3.

Oh cool, I have done that for my tool as well. I'm just a bit disappointed that sqlite doesn't have the if-function (and some other incompatibilities with MySQL).

I just checked a recent tsv export and it's indeed called personCountryId there. How are you doing it? I honestly can't imagine how you'd accidentally truncate column names in Python/sqlite.

Yes, I get Trinidad and Tobago with 61.30 average and 4 solves.

Here's yet another simple (though slower) way to do it:
Code:
SELECT personCountryId, round(avg(v)/100, 2) Average, count(*) NumSolves
FROM (
SELECT personCountryId, value1 v FROM Results WHERE eventId='333' UNION ALL
SELECT personCountryId, value2 v FROM Results WHERE eventId='333' UNION ALL
SELECT personCountryId, value3 v FROM Results WHERE eventId='333' UNION ALL
SELECT personCountryId, value4 v FROM Results WHERE eventId='333' UNION ALL
SELECT personCountryId, value5 v FROM Results WHERE eventId='333') tmp
WHERE v > 0
GROUP BY personCountryId;

We could do the eventId='333' check only once, outside the union, but that's apparently a lot slower.
 
Last edited:
Hmm, checking the eventId outside the union is a lot slower in MySQL, but in sqlite it's decent.
Code:
SELECT personCountryId, round(avg(v)/100, 2) Average, count(*) NumSolves
FROM (
SELECT personCountryId, eventId, value1 v FROM Results UNION ALL
SELECT personCountryId, eventId, value2 v FROM Results UNION ALL
SELECT personCountryId, eventId, value3 v FROM Results UNION ALL
SELECT personCountryId, eventId, value4 v FROM Results UNION ALL
SELECT personCountryId, eventId, value5 v FROM Results) tmp
WHERE eventId='333' AND v>0
GROUP BY personCountryId
 
I just checked a recent tsv export and it's indeed called personCountryId there. How are you doing it? I honestly can't imagine how you'd accidentally truncate column names in Python/sqlite.

I probably do my inport in a weird way. When I'm not doing this for a school project, I'll use your tool :P

Code:
import csv, sqlite3

competitions = open("WCA_export_Competitions.tsv", "rU")
with competitions as f:
    reader = csv.reader(f, delimiter = "\t")
    comps = list(reader)

results = open("WCA_export_Results.tsv", "rU")
with results as f:
    reader = csv.reader(f, delimiter = "\t")
    res = list(reader)

conn = sqlite3.connect('WCA.db')
conn.text_factory = str

comps.pop(0)
res.pop(0)

comps_new = []

for i in range(len(comps)):
    if comps[i][3] == 'USA':
        comps_new.append(comps[i])

for i in range(len(comps_new)):
    if comps_new[i][2] == "Multiple cities":
        comps_new[i].append('')
    try:
        comps_new[i].append(comps_new[i][2].split(", ")[1])
    except:
        None

c = conn.cursor()

c.execute("DROP TABLE IF EXISTS USAcompetitions")
c.execute("CREATE TABLE USAcompetitions (id TEXT, name TEXT, cityName TEXT, countryID TEXT, information TEXT, year INT, month INT, day INT, endMonth INT, endDay INT, eventSpecs TEXT, wcaDelegate TEXT, organiser TEXT, venue TEXT, venueAddress TEXT, venueDetails TEXT, website TEXT, cellName TEXT, latitude INT, longitude INT, state TEXT)")
c.executemany("INSERT INTO USAcompetitions VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", comps_new)

for i in range(len(comps)):
    if len(comps[i]) == 21:
        comps[i].pop()

c.execute("DROP TABLE IF EXISTS competitions")
c.execute("CREATE TABLE competitions (id TEXT, name TEXT, cityName TEXT, countryID TEXT, information TEXT, year INT, month INT, day INT, endMonth INT, endDay INT, eventSpecs TEXT, wcaDelegate TEXT, organiser TEXT, venue TEXT, venueAddress TEXT, venueDetails TEXT, website TEXT, cellName TEXT, latitude INT, longitude INT)")
c.executemany("INSERT INTO competitions VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", comps)

c.execute("DROP TABLE IF EXISTS results")
c.execute("CREATE TABLE results (competitionId TEXT, eventId TEXT, roundId TEXT, pos INT, best INT, average INT, personName TEXT, personId TEXT, personCountry TEXT, formatId TEXT, value1 INT, value2 INT, value3 INT, value4 INT, value5 INT, singleRecord TEXT, averageRecord TEXT)")
c.executemany("INSERT INTO results VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", res)

conn.commit()
 
Last edited:
Ah, you ignore the names in the files and hardcode them yourself, that of course explains it :)

That's ok, I guess. You should learn to use Python like Python, though.

One of the awesome features of Python is how naturally you can work with collections. So don't do this:
Code:
comps_new = []
for i in range(len(comps)):
    if comps[i][3] == 'USA':
        comps_new.append(comps[i])
If they taught you using indexes like that in Python, they ought to get fired. Seriously. Seriously seriously.

See how much more natural this is:
Code:
comps_new = []
for comp in comps:
    if comp[3] == 'USA':
        comps_new.append(comp)
Although the real proper way to do it is with a list comprehension:
Code:
comps_new = [comp for comp in comps if comp[3] == 'USA']
Btw, I'd call it "comps_usa" (well, unless you occasionally use it for other countries).

"except: None" should be "except: pass". Do-nothing is exactly what "pass" is for.

As you know, indentation is important in Python, so better use [noparse]
Code:
[/noparse] tags so we can see the indentation.[/spoiler]
 
Last edited:
Ah, you ignore the names in the files and hardcode them yourself, that of course explains it :)

That's ok, I guess. You should learn to use Python like Python, though.

One of the awesome features of Python is how naturally you can work with collections. So don't do this:
Code:
comps_new = []
for i in range(len(comps)):
    if comps[i][3] == 'USA':
        comps_new.append(comps[i])
If they taught you using indexes like that in Python, they ought to get fired. Seriously. Seriously seriously.

See how much more natural this is:
Code:
comps_new = []
for comp in comps:
    if comp[3] == 'USA':
        comps_new.append(comp)
Although the real proper way to do it is with a list comprehension:
Code:
comps_new = [comp for comp in comps if comp[3] == 'USA']
Btw, I'd call it "comps_usa" (well, unless you occasionally use it for other countries).

"except: None" should be "except: pass". Do-nothing is exactly what "pass" is for.

As you know, indentation is important in Python, so better use [noparse]
Code:
[/noparse] tags so we can see the indentation.[/spoiler][/QUOTE]

Yeah, the class I'm in isn't really a Python class, it's a data manipulation class that uses Python.  The lecture on how to use Python was really brief review, as they expected you to know how to use Python.  I've been using R extensively in my program, and I think my habits in R have transferred over to Python -- I once knew how to be more Pythonic!  Thanks for the tips.
 
Ha, R, uncanny how similar we appear. Well ok, I haven't used R much yet, but it's next on my list after python/sqlite. You should post a statistic with R code sometime, I can probably learn from you there :)

Next statistic... newcomer beating Robert:
Using data from WCA_export486_20141008 and Stefan's WCA Statistics Tools.

[TABLE="class:grid,align:left"]
[TR][TD]personId[/TD][TD]Solves per competition[/TD][TD]Solves[/TD][TD]Competitions[/TD][TD]Attempts per competition[/TD][/TR]
[TR][TD]Alexis Rodrigo Cazu Mendoza[/TD][TD="align:right"]96.67[/TD][TD="align:right"]290[/TD][TD="align:right"]3[/TD][TD="align:right"]96.67[/TD][/TR]
[TR][TD]Robert Yau[/TD][TD="align:right"]93.32[/TD][TD="align:right"]2613[/TD][TD="align:right"]28[/TD][TD="align:right"]97.86[/TD][/TR]
[TR][TD]Dorian Stein[/TD][TD="align:right"]92.75[/TD][TD="align:right"]371[/TD][TD="align:right"]4[/TD][TD="align:right"]94.75[/TD][/TR]
[TR][TD]Oleg Martynov[/TD][TD="align:right"]89.33[/TD][TD="align:right"]268[/TD][TD="align:right"]3[/TD][TD="align:right"]91.33[/TD][/TR]
[TR][TD]Simon Westlund[/TD][TD="align:right"]88.86[/TD][TD="align:right"]2577[/TD][TD="align:right"]29[/TD][TD="align:right"]93.48[/TD][/TR]
[TR][TD]Daniel Sheppard[/TD][TD="align:right"]88.05[/TD][TD="align:right"]3346[/TD][TD="align:right"]38[/TD][TD="align:right"]92.05[/TD][/TR]
[TR][TD]Bence Barát[/TD][TD="align:right"]87.31[/TD][TD="align:right"]5850[/TD][TD="align:right"]67[/TD][TD="align:right"]90.58[/TD][/TR]
[TR][TD]Ben Whitmore[/TD][TD="align:right"]85.00[/TD][TD="align:right"]1360[/TD][TD="align:right"]16[/TD][TD="align:right"]88.81[/TD][/TR]
[TR][TD]Lucas Wesche[/TD][TD="align:right"]82.33[/TD][TD="align:right"]988[/TD][TD="align:right"]12[/TD][TD="align:right"]85.50[/TD][/TR]
[TR][TD]Vladislav Kaminskiy[/TD][TD="align:right"]82.20[/TD][TD="align:right"]411[/TD][TD="align:right"]5[/TD][TD="align:right"]88.20[/TD][/TR]
[TR][TD]Chris Wall[/TD][TD="align:right"]81.40[/TD][TD="align:right"]1628[/TD][TD="align:right"]20[/TD][TD="align:right"]88.25[/TD][/TR]
[TR][TD]Matic Omulec[/TD][TD="align:right"]81.32[/TD][TD="align:right"]1789[/TD][TD="align:right"]22[/TD][TD="align:right"]84.55[/TD][/TR]
[TR][TD]Alexandre Key Wakate Teruya[/TD][TD="align:right"]81.00[/TD][TD="align:right"]162[/TD][TD="align:right"]2[/TD][TD="align:right"]81.50[/TD][/TR]
[TR][TD]José Antonio Muñoz Castrejon[/TD][TD="align:right"]81.00[/TD][TD="align:right"]81[/TD][TD="align:right"]1[/TD][TD="align:right"]81.00[/TD][/TR]
[TR][TD]Dániel Varga[/TD][TD="align:right"]80.89[/TD][TD="align:right"]4611[/TD][TD="align:right"]57[/TD][TD="align:right"]83.61[/TD][/TR]
[TR][TD]Emanuel Rheinert[/TD][TD="align:right"]80.07[/TD][TD="align:right"]1121[/TD][TD="align:right"]14[/TD][TD="align:right"]85.71[/TD][/TR]
[TR][TD]Callum Hales-Jepp[/TD][TD="align:right"]80.06[/TD][TD="align:right"]1361[/TD][TD="align:right"]17[/TD][TD="align:right"]86.06[/TD][/TR]
[TR][TD]Pavel Galaktionov[/TD][TD="align:right"]79.00[/TD][TD="align:right"]237[/TD][TD="align:right"]3[/TD][TD="align:right"]81.67[/TD][/TR]
[TR][TD]Ivan Zabrodin[/TD][TD="align:right"]78.54[/TD][TD="align:right"]1885[/TD][TD="align:right"]24[/TD][TD="align:right"]84.79[/TD][/TR]
[TR][TD]Daniel Wu[/TD][TD="align:right"]77.73[/TD][TD="align:right"]855[/TD][TD="align:right"]11[/TD][TD="align:right"]81.27[/TD][/TR]
[TR][TD]Jan Bentlage[/TD][TD="align:right"]77.68[/TD][TD="align:right"]5282[/TD][TD="align:right"]68[/TD][TD="align:right"]81.40[/TD][/TR]
[TR][TD]Wojciech Knott[/TD][TD="align:right"]77.68[/TD][TD="align:right"]2175[/TD][TD="align:right"]28[/TD][TD="align:right"]80.32[/TD][/TR]
[TR][TD]Milán Baticz[/TD][TD="align:right"]77.11[/TD][TD="align:right"]3547[/TD][TD="align:right"]46[/TD][TD="align:right"]81.78[/TD][/TR]
[TR][TD]Mayron Blain[/TD][TD="align:right"]77.00[/TD][TD="align:right"]77[/TD][TD="align:right"]1[/TD][TD="align:right"]84.00[/TD][/TR]
[TR][TD]Hunor Bózsing[/TD][TD="align:right"]76.86[/TD][TD="align:right"]2690[/TD][TD="align:right"]35[/TD][TD="align:right"]79.60[/TD][/TR]
[TR][TD]Brock Hamann[/TD][TD="align:right"]76.75[/TD][TD="align:right"]307[/TD][TD="align:right"]4[/TD][TD="align:right"]85.25[/TD][/TR]
[TR][TD]Alberto Pérez de Rada Fiol[/TD][TD="align:right"]76.64[/TD][TD="align:right"]843[/TD][TD="align:right"]11[/TD][TD="align:right"]81.73[/TD][/TR]
[TR][TD]Feliks Zemdegs[/TD][TD="align:right"]76.50[/TD][TD="align:right"]2142[/TD][TD="align:right"]28[/TD][TD="align:right"]80.46[/TD][/TR]
[TR][TD]Ilyas Arystanbekov[/TD][TD="align:right"]76.00[/TD][TD="align:right"]76[/TD][TD="align:right"]1[/TD][TD="align:right"]76.00[/TD][/TR]
[TR][TD]Sébastien Auroux[/TD][TD="align:right"]75.78[/TD][TD="align:right"]8866[/TD][TD="align:right"]117[/TD][TD="align:right"]79.52[/TD][/TR]
[TR][TD]Jonathan Mauroy[/TD][TD="align:right"]75.78[/TD][TD="align:right"]682[/TD][TD="align:right"]9[/TD][TD="align:right"]78.33[/TD][/TR]
[TR][TD]Nikita Loyko[/TD][TD="align:right"]75.67[/TD][TD="align:right"]454[/TD][TD="align:right"]6[/TD][TD="align:right"]82.50[/TD][/TR]
[TR][TD]Joe Nowak[/TD][TD="align:right"]75.60[/TD][TD="align:right"]378[/TD][TD="align:right"]5[/TD][TD="align:right"]78.00[/TD][/TR]
[TR][TD]Louis Cormier[/TD][TD="align:right"]75.52[/TD][TD="align:right"]2190[/TD][TD="align:right"]29[/TD][TD="align:right"]77.69[/TD][/TR]
[TR][TD]Akash Rupela[/TD][TD="align:right"]75.05[/TD][TD="align:right"]1426[/TD][TD="align:right"]19[/TD][TD="align:right"]78.63[/TD][/TR]
[TR][TD]Vladislav Ushakov[/TD][TD="align:right"]75.00[/TD][TD="align:right"]225[/TD][TD="align:right"]3[/TD][TD="align:right"]81.00[/TD][/TR]
[TR][TD]Carlos Macias Valadez[/TD][TD="align:right"]75.00[/TD][TD="align:right"]225[/TD][TD="align:right"]3[/TD][TD="align:right"]78.00[/TD][/TR]
[TR][TD]Guoquan Zhang (张国全)[/TD][TD="align:right"]75.00[/TD][TD="align:right"]75[/TD][TD="align:right"]1[/TD][TD="align:right"]78.00[/TD][/TR]
[TR][TD]Marco Iván Olea[/TD][TD="align:right"]75.00[/TD][TD="align:right"]75[/TD][TD="align:right"]1[/TD][TD="align:right"]79.00[/TD][/TR]
[TR][TD]Erwan Kohler[/TD][TD="align:right"]74.57[/TD][TD="align:right"]1044[/TD][TD="align:right"]14[/TD][TD="align:right"]77.50[/TD][/TR]
[TR][TD]Carlos Méndez García-Barroso[/TD][TD="align:right"]74.52[/TD][TD="align:right"]1565[/TD][TD="align:right"]21[/TD][TD="align:right"]77.38[/TD][/TR]
[TR][TD]Ramón Dersch[/TD][TD="align:right"]74.50[/TD][TD="align:right"]596[/TD][TD="align:right"]8[/TD][TD="align:right"]75.75[/TD][/TR]
[TR][TD]Daniel Waldir Rodrigues Rosa[/TD][TD="align:right"]74.38[/TD][TD="align:right"]595[/TD][TD="align:right"]8[/TD][TD="align:right"]77.00[/TD][/TR]
[TR][TD]Eric Fernandes Monteiro[/TD][TD="align:right"]74.33[/TD][TD="align:right"]446[/TD][TD="align:right"]6[/TD][TD="align:right"]76.17[/TD][/TR]
[TR][TD]Jure Gregorc[/TD][TD="align:right"]74.20[/TD][TD="align:right"]1113[/TD][TD="align:right"]15[/TD][TD="align:right"]78.20[/TD][/TR]
[TR][TD]Michał Pleskowicz[/TD][TD="align:right"]74.18[/TD][TD="align:right"]2819[/TD][TD="align:right"]38[/TD][TD="align:right"]77.97[/TD][/TR]
[TR][TD]Rok Glinšek[/TD][TD="align:right"]74.00[/TD][TD="align:right"]296[/TD][TD="align:right"]4[/TD][TD="align:right"]75.25[/TD][/TR]
[TR][TD]Achmad Nur Aliansyah[/TD][TD="align:right"]74.00[/TD][TD="align:right"]74[/TD][TD="align:right"]1[/TD][TD="align:right"]80.00[/TD][/TR]
[TR][TD]Daniel Grabski[/TD][TD="align:right"]73.90[/TD][TD="align:right"]739[/TD][TD="align:right"]10[/TD][TD="align:right"]78.10[/TD][/TR]
[TR][TD]Jakub Kipa[/TD][TD="align:right"]73.86[/TD][TD="align:right"]1625[/TD][TD="align:right"]22[/TD][TD="align:right"]78.23[/TD][/TR]
[TR][TD]Alrimar Dias Rocha Sobrinho[/TD][TD="align:right"]73.56[/TD][TD="align:right"]1177[/TD][TD="align:right"]16[/TD][TD="align:right"]78.38[/TD][/TR]
[TR][TD]Wojciech Szatanowski[/TD][TD="align:right"]73.51[/TD][TD="align:right"]3602[/TD][TD="align:right"]49[/TD][TD="align:right"]77.20[/TD][/TR]
[TR][TD]Kim Jokinen[/TD][TD="align:right"]73.50[/TD][TD="align:right"]588[/TD][TD="align:right"]8[/TD][TD="align:right"]78.13[/TD][/TR]
[TR][TD]Trevor Petersen[/TD][TD="align:right"]73.40[/TD][TD="align:right"]367[/TD][TD="align:right"]5[/TD][TD="align:right"]78.00[/TD][/TR]
[TR][TD]Andrii Shymkiv (Андрій Шимків)[/TD][TD="align:right"]73.00[/TD][TD="align:right"]146[/TD][TD="align:right"]2[/TD][TD="align:right"]77.50[/TD][/TR]
[TR][TD]Pavel Yushkevich[/TD][TD="align:right"]72.86[/TD][TD="align:right"]510[/TD][TD="align:right"]7[/TD][TD="align:right"]77.00[/TD][/TR]
[TR][TD]Ryan Jones[/TD][TD="align:right"]72.57[/TD][TD="align:right"]508[/TD][TD="align:right"]7[/TD][TD="align:right"]74.86[/TD][/TR]
[TR][TD]Antoine Cantin[/TD][TD="align:right"]72.43[/TD][TD="align:right"]1521[/TD][TD="align:right"]21[/TD][TD="align:right"]76.43[/TD][/TR]
[TR][TD]Luke Hudlass-Galley[/TD][TD="align:right"]72.00[/TD][TD="align:right"]360[/TD][TD="align:right"]5[/TD][TD="align:right"]73.00[/TD][/TR]
[TR][TD]Nikita Chistyakov[/TD][TD="align:right"]72.00[/TD][TD="align:right"]144[/TD][TD="align:right"]2[/TD][TD="align:right"]76.50[/TD][/TR]
[TR][TD]Davi Silva Soares Ferreira[/TD][TD="align:right"]72.00[/TD][TD="align:right"]72[/TD][TD="align:right"]1[/TD][TD="align:right"]74.00[/TD][/TR]
[TR][TD]Christian Schiøtt[/TD][TD="align:right"]71.89[/TD][TD="align:right"]647[/TD][TD="align:right"]9[/TD][TD="align:right"]74.44[/TD][/TR]
[TR][TD]Cornelius Dieckmann[/TD][TD="align:right"]71.77[/TD][TD="align:right"]2799[/TD][TD="align:right"]39[/TD][TD="align:right"]75.87[/TD][/TR]
[TR][TD]Ciarán Beahan[/TD][TD="align:right"]71.62[/TD][TD="align:right"]931[/TD][TD="align:right"]13[/TD][TD="align:right"]72.38[/TD][/TR]
[TR][TD]Dmytro Pochapskyi (Дмитро Почапський)[/TD][TD="align:right"]71.50[/TD][TD="align:right"]143[/TD][TD="align:right"]2[/TD][TD="align:right"]73.50[/TD][/TR]
[TR][TD]Maarten Smit[/TD][TD="align:right"]71.07[/TD][TD="align:right"]1990[/TD][TD="align:right"]28[/TD][TD="align:right"]74.89[/TD][/TR]
[TR][TD]Pedro Santos Guimarães[/TD][TD="align:right"]71.04[/TD][TD="align:right"]1705[/TD][TD="align:right"]24[/TD][TD="align:right"]77.00[/TD][/TR]
[TR][TD]Allyson Dias de Lima[/TD][TD="align:right"]71.00[/TD][TD="align:right"]1562[/TD][TD="align:right"]22[/TD][TD="align:right"]76.82[/TD][/TR]
[TR][TD]Pablo Nicolás Oshiro Mondoñedo[/TD][TD="align:right"]71.00[/TD][TD="align:right"]1491[/TD][TD="align:right"]21[/TD][TD="align:right"]74.14[/TD][/TR]
[TR][TD]Conor Cronin[/TD][TD="align:right"]71.00[/TD][TD="align:right"]497[/TD][TD="align:right"]7[/TD][TD="align:right"]78.43[/TD][/TR]
[TR][TD]Kyrylo Danyleiko (Кирило Данилейко)[/TD][TD="align:right"]71.00[/TD][TD="align:right"]355[/TD][TD="align:right"]5[/TD][TD="align:right"]75.60[/TD][/TR]
[TR][TD]Pranjul Gupta[/TD][TD="align:right"]71.00[/TD][TD="align:right"]142[/TD][TD="align:right"]2[/TD][TD="align:right"]77.00[/TD][/TR]
[TR][TD]Vincent Bruns[/TD][TD="align:right"]70.83[/TD][TD="align:right"]850[/TD][TD="align:right"]12[/TD][TD="align:right"]73.33[/TD][/TR]
[TR][TD]Ihor Bilchenko (Ігор Більченко)[/TD][TD="align:right"]70.81[/TD][TD="align:right"]1912[/TD][TD="align:right"]27[/TD][TD="align:right"]75.70[/TD][/TR]
[TR][TD]David Schult[/TD][TD="align:right"]70.80[/TD][TD="align:right"]354[/TD][TD="align:right"]5[/TD][TD="align:right"]72.00[/TD][/TR]
[TR][TD]Przemysław Kaleta[/TD][TD="align:right"]70.73[/TD][TD="align:right"]2334[/TD][TD="align:right"]33[/TD][TD="align:right"]72.03[/TD][/TR]
[TR][TD]Anatoly Kim[/TD][TD="align:right"]70.10[/TD][TD="align:right"]701[/TD][TD="align:right"]10[/TD][TD="align:right"]74.90[/TD][/TR]
[TR][TD]James Molloy[/TD][TD="align:right"]70.00[/TD][TD="align:right"]1610[/TD][TD="align:right"]23[/TD][TD="align:right"]75.96[/TD][/TR]
[TR][TD]Pedro Henrique Da Silva Roque[/TD][TD="align:right"]70.00[/TD][TD="align:right"]280[/TD][TD="align:right"]4[/TD][TD="align:right"]73.50[/TD][/TR]
[TR][TD]Dmitry Zvyagintsev[/TD][TD="align:right"]69.95[/TD][TD="align:right"]1469[/TD][TD="align:right"]21[/TD][TD="align:right"]72.52[/TD][/TR]
[TR][TD]Jakob Obleser[/TD][TD="align:right"]69.89[/TD][TD="align:right"]629[/TD][TD="align:right"]9[/TD][TD="align:right"]73.67[/TD][/TR]
[TR][TD]Ting Sheng Bao Yang[/TD][TD="align:right"]69.61[/TD][TD="align:right"]1949[/TD][TD="align:right"]28[/TD][TD="align:right"]74.36[/TD][/TR]
[TR][TD]Alexandre Carlier[/TD][TD="align:right"]69.60[/TD][TD="align:right"]348[/TD][TD="align:right"]5[/TD][TD="align:right"]71.80[/TD][/TR]
[TR][TD]Michael Röhrer[/TD][TD="align:right"]69.44[/TD][TD="align:right"]2847[/TD][TD="align:right"]41[/TD][TD="align:right"]73.10[/TD][/TR]
[TR][TD]Artem Melikian (Артем Мелікян)[/TD][TD="align:right"]69.38[/TD][TD="align:right"]1457[/TD][TD="align:right"]21[/TD][TD="align:right"]72.10[/TD][/TR]
[TR][TD]Erik Akkersdijk[/TD][TD="align:right"]69.16[/TD][TD="align:right"]7400[/TD][TD="align:right"]107[/TD][TD="align:right"]74.38[/TD][/TR]
[TR][TD]Ottfried Kejs[/TD][TD="align:right"]69.00[/TD][TD="align:right"]828[/TD][TD="align:right"]12[/TD][TD="align:right"]73.00[/TD][/TR]
[TR][TD]Sameer Mahmood[/TD][TD="align:right"]69.00[/TD][TD="align:right"]621[/TD][TD="align:right"]9[/TD][TD="align:right"]72.11[/TD][/TR]
[TR][TD]Yaroslav Ivanashev[/TD][TD="align:right"]69.00[/TD][TD="align:right"]414[/TD][TD="align:right"]6[/TD][TD="align:right"]71.83[/TD][/TR]
[TR][TD]Ricardo Bayona Salvador[/TD][TD="align:right"]69.00[/TD][TD="align:right"]69[/TD][TD="align:right"]1[/TD][TD="align:right"]74.00[/TD][/TR]
[TR][TD]Fakhri Raihaan[/TD][TD="align:right"]68.90[/TD][TD="align:right"]689[/TD][TD="align:right"]10[/TD][TD="align:right"]74.20[/TD][/TR]
[TR][TD]Moritz Karl[/TD][TD="align:right"]68.67[/TD][TD="align:right"]2060[/TD][TD="align:right"]30[/TD][TD="align:right"]71.83[/TD][/TR]
[TR][TD]Ivan Torgashov[/TD][TD="align:right"]68.67[/TD][TD="align:right"]1030[/TD][TD="align:right"]15[/TD][TD="align:right"]71.80[/TD][/TR]
[TR][TD]Chan Chun Hang (陳浚鏗)[/TD][TD="align:right"]68.44[/TD][TD="align:right"]616[/TD][TD="align:right"]9[/TD][TD="align:right"]72.56[/TD][/TR]
[TR][TD]Israel Fraga da Silva[/TD][TD="align:right"]67.67[/TD][TD="align:right"]203[/TD][TD="align:right"]3[/TD][TD="align:right"]73.67[/TD][/TR]
[TR][TD]Erwan de Lépinau[/TD][TD="align:right"]67.50[/TD][TD="align:right"]270[/TD][TD="align:right"]4[/TD][TD="align:right"]71.25[/TD][/TR]
[TR][TD]David Woner[/TD][TD="align:right"]67.30[/TD][TD="align:right"]1346[/TD][TD="align:right"]20[/TD][TD="align:right"]71.00[/TD][/TR]
[TR][TD]Daniel Gracia Ortiz[/TD][TD="align:right"]67.27[/TD][TD="align:right"]1480[/TD][TD="align:right"]22[/TD][TD="align:right"]71.23[/TD][/TR]
[TR][TD]Andreas Pohl[/TD][TD="align:right"]67.06[/TD][TD="align:right"]2414[/TD][TD="align:right"]36[/TD][TD="align:right"]74.17[/TD][/TR]
[TR][TD]John Dirks[/TD][TD="align:right"]67.00[/TD][TD="align:right"]268[/TD][TD="align:right"]4[/TD][TD="align:right"]67.75[/TD][/TR]
[/TABLE]

Code:
[NOPARSE]SELECT
  personId,
  round(Solves/Competitions, 2) 'Solves per competition',
  Solves,
  Competitions,
  round((Solves+DNFs)/Competitions, 2) 'Attempts per competition'
FROM
 (SELECT
    personId,
    sum((value1>0)+(value2>0)+(value3>0)+(value4>0)+(value5>0)) Solves,
    sum((value1=-1)+(value2=-1)+(value3=-1)+(value4=-1)+(value5=-1)) DNFs,
    count(distinct competitionId) Competitions
  FROM Results
  GROUP BY personId) tmp
ORDER BY 2 desc, 3 desc
LIMIT 100;[/NOPARSE]
 
Last edited:
Ha, R, uncanny how similar we appear. Well ok, I haven't used R much yet, but it's next on my list after python/sqlite. You should post a statistic with R code sometime, I can probably learn from you there :)

Sure, I'll try something in R if I can think of an appropriate statistic - although it's nowhere near as elegant as how SQL handles them. I think I did something in R in this thread months ago, I'll have to dig it up.

EDIT: Found it. I could have used apply/sapply with a custom function rather than a for loop if I wanted to do this more in the style of R. I'm also not sure how to handle unicode in R yet, although I didn't try hard to fix that. I could probably fix up this code later, I'm a bit more experienced with R now than I used to be.

Decided to take this into my own hands. I'm not experienced with SQL so I used R instead.

Code:
wca = read.csv("wca export.csv")
blind = wca[wca$eventId == "333bf",]

blindsmall = blind[,c(5, 7)] #name and best time, BLD
successes = blindsmall[blindsmall$best != -1,] #eliminate DNF averages
success = as.character(unique(successes$person)) #create a unique list of names
loopnum = length(success) #number used in for loop later

speed = wca[wca$eventId == "333",6:7] #name and average, speed
speed = speed[speed$average > 0,] #eliminate DNF/empty values

vec = 0 #placeholder variable
for (i in 1:loopnum) { 
  res = speed[speed$person == success[i],] #table of 3x3x3 averages for blindsolver i
  vec[i] = min(res$average) #takes the best 3x3x3 average
}

output = data.frame(name=success, time=vec) #arranges the two vectors of names and best 3x3x3 averages together
output2 = output[is.finite(output$time),] #Inf was result for blindsolvers with no 3x3x3 average
output3 = output2[order(-output2$time),] #order from highest to lowest

And here's the top 100. Names with special characters didn't translate well.
Code:
                                                     name time
1                                      Walter Antonio Monti 8974
2                                             Hritik Shukla 8595
3                           Hideaki Tomoyori (å‹å¯„英哲) 5841
4                                               Phil Hamory 5636
5                                             Javier Santos 5631
6                                    Hualei Gao (高åŽç£Š) 5425
7                                             Eszter Szabó 5351
8                                             Tharun Suresh 4945
9        Oleksii Bessonov (ОлекÑій БеÑÑонов) 4595
10                                Julián González Acevedo 4569
11     Mark Polinkovsky (Марк ПолинковÑкий) 4544
12                                            Amish Thakkar 4502
13                                             Érik Amorim 4496
14                                   Abhijitharam Tadepalli 4474
15                                           Julia Connelly 4435
16                                            Oky Markianto 4349
17                                          Aygul Tlyavsina 4219
18                                            Alvin Raditya 4218
19                                            Gaston Muñoz 4196
20                                       Jin Zhang (ç«*瑾) 4167
21                           LaÃ*s Azevedo Martins da Silva 4084
22                        Tertuliano Carneiro de Souza Neto 4083
23                                          Zacharie Cortes 4077
24                                          Xin Lu (鹿鑫) 4070
25                                        Frédéric Giguet 4066
26                                         Varun Karandikar 3949
27                                           Mukunth Suresh 3938
28                                           Yann Leenhardt 3937
29                                             Douwe Wermer 3934
30                                            Bruce Norskog 3908
31                                         Martin Maréchal 3860
32                                     Khoirudin Ubaidillah 3851
33                                            Ahmad Muhajir 3796
34                                          Antoine Tonnoir 3781
35                                         Yang Hu (胡扬) 3688
36                                        Robert D. Johnson 3686
37                                           Zulfikar Karim 3627
38                                             Gilles Cayol 3601
39                                 Yijing Liang (æ¢è¯‘é™) 3599
40                                          Nicolas Renault 3578
41                                               John Louis 3577
42                                Chuanliang Ma (马ä¼*æ¢) 3564
43                                    Marcus Forsell Stahre 3547
44                                              Ivan Enrico 3543
45                                            Mats Bergsten 3513
46                                        Matthieu Fresquet 3484
47                                        Krzysztof Opalski 3400
48                                            Jennifer Tang 3391
49                                           Mats Kollbrink 3372
50                                            Ryan Gossiaux 3339
51                                           Rafał Bartuzi 3339
52                                           Joshua Lambert 3333
53                                              Suyash Ojha 3292
54                                                 Dan Wang 3269
55                                          Matthew Wallisa 3265
56                                           David Bergling 3256
57                                        Frédéric Mignon 3246
58                                             Katja Renner 3226
59                              Tsai-Hsuan Chen (陳采è±) 3217
60                                             Bill McGaugh 3203
61                                           Xi He (何熙) 3203
62                                     Bagus Galang Pratama 3179
63                                              Olve Maudal 3172
64                                      Julio Machaca Perez 3170
65                                           Wojciech Jurga 3156
66                          Katsuto Takeuchi (æ*¦å†…å…‹æ–—) 3149
67                                        Ahmad Leo Yudanto 3113
68                                          Vladimir Kostin 3109
69                                              Alex Comeau 3097
70                                         Johannes Neumann 3094
71                                          Thomas Bossmann 3094
72                                              Vikram Mada 3093
73                                        Ralph Eikelenberg 3090
74                                            Vivek Chandru 3085
75                                   Andre Vincentius Angga 3084
76                                           Shantanu Walke 3083
77                                             Adrian Roșu 3048
78                                                 Apriadin 3043
79                                            Raviraj Gohil 3038
80                        Takeshi Akuzawa (阿久沢剛å²) 3006
81                                         Pierre Bienaimé 2995
82                                      Siska Lestari Afdan 2992
83                           Pablo Cristian Duarte de Sousa 2963
84                                            Kathi Sundeep 2939
85                                                 Ben Beer 2931
86                                          Brendan Manning 2929
87                                            Karthik Kumar 2884
88                                           Tyler Hakomori 2879
89                                           Kai Molzberger 2867
90                                        Satriyo Nurdiyono 2861
91                                              Thomas Kohn 2856
92                                            Caleb Shapiro 2842
93                                              Ivan Calvet 2822
94                                             Charlie Pugh 2820
95                                             Donato Marro 2810
96                                               Alan Jiang 2808
97                                       Brandon Whitchurch 2806
98                                   Budi Setiawan Paramata 2772
99                               Diego de Pereda Sebastián 2753
100                                           Jaime Solsona 2747

Also of note, there are 36 people with a BLD success with no 3x3x3 average that are not listed here.
 
Last edited:
Anyone done list of most appearances in top 1000 results for 3x3 single? Feliks has at least 150 appearances in that list...
Here's my ugly hack (I just copied the top1000 list & counted ...)
Code:
Top 10
158	Feliks Zemdegs
91	Mats Valk
60	Alexander Lau
54	Cornelius Dieckmann
37	Michal Pleskowicz
34	Sebastian Weyer
32	Philipp Weyer
26	Kevin Costello III
24	Lucas Etter
24	Rowe Hessler
 
Thanks for the R example, Kit. Good to see how that can look like, and seeing an improved version would be nice as well. Btw, yesterday you said "Never realized that you could filter out DNS/DNF with a >0 trick", but in that old code you used that.

I think R might have an advantage when you want to do something chronological, like some "longest streak" calculation. And graphical visualizations, that's a major reason I want to get into it.
 
Btw, yesterday you said "Never realized that you could filter out DNS/DNF with a >0 trick", but in that old code you used that.

I guess the way I think about it in R is different -- In R, it works by making a vector of booleans and reducing the vector to all entries that correspond to a true value. I guess I never thought about SQL in a vector-based way.
 
I guess the way I think about it in R is different -- In R, it works by making a vector of booleans and reducing the vector to all entries that correspond to a true value. I guess I never thought about SQL in a vector-based way.

Hmm, I don't see why you'd need vector-thinking for it. I don't think about SQL in that vector-based way, either, and use the ">0" test on individual items.
 
Can we have an update of the top 50 people for BLD sum of ranks please? :)
Pasting top 100 since I'm there at 95th :o

[TABLE="class:grid,align:left"][TR][TD] [/TD][TD] total+1[/TD][TD] 2430 [/TD][TD] 482 [/TD][TD] 270 [/TD][TD] 133 [/TD][TD] 887 [/TD][TD] [/TD][/TR]
[TR][TD] [/TD][TD] name [/TD][TD] 333bf (single) [/TD][TD] 333bf (average) [/TD][TD] 444bf [/TD][TD] 555bf [/TD][TD] 333mbf [/TD][TD] sum [/TD][/TR]
[TR][TD] 1 [/TD][TD] Grzegorz Jałocha [/TD][TD] 4 [/TD][TD] 4 [/TD][TD] 3 [/TD][TD] 1 [/TD][TD] 2 [/TD][TD] 14 [/TD][/TR]
[TR][TD] 2 [/TD][TD] Marcell Endrey [/TD][TD] 7 [/TD][TD] 3 [/TD][TD] 2 [/TD][TD] 3 [/TD][TD] 3 [/TD][TD] 18 [/TD][/TR]
[TR][TD] 3 [/TD][TD] Kaijun Lin (林恺俊) [/TD][TD] 3 [/TD][TD] 1 [/TD][TD] 5 [/TD][TD] 19 [/TD][TD] 16 [/TD][TD] 44 [/TD][/TR]
[TR][TD] 4 [/TD][TD] Oliver Frost [/TD][TD] 25 [/TD][TD] 20 [/TD][TD] 1 [/TD][TD] 2 [/TD][TD] 4 [/TD][TD] 52 [/TD][/TR]
[TR][TD] 5 [/TD][TD] Oleg Gritsenko [/TD][TD] 24 [/TD][TD] 13 [/TD][TD] 7 [/TD][TD] 5 [/TD][TD] 7 [/TD][TD] 56 [/TD][/TR]
[TR][TD] 6 [/TD][TD] Zane Carney [/TD][TD] 15 [/TD][TD] 11 [/TD][TD] 20 [/TD][TD] 8 [/TD][TD] 6 [/TD][TD] 60 [/TD][/TR]
[TR][TD] 7 [/TD][TD] Noah Arthurs [/TD][TD] 9 [/TD][TD] 6 [/TD][TD] 11 [/TD][TD] 31 [/TD][TD] 11 [/TD][TD] 68 [/TD][/TR]
[TR][TD] 8 [/TD][TD] Ainesh Sevellaraja [/TD][TD] 18 [/TD][TD] 23 [/TD][TD] 6 [/TD][TD] 14 [/TD][TD] 10 [/TD][TD] 71 [/TD][/TR]
[TR][TD] 9 [/TD][TD] Marcin Zalewski [/TD][TD] 2 [/TD][TD] 5 [/TD][TD] 10 [/TD][TD] 28 [/TD][TD] 32 [/TD][TD] 77 [/TD][/TR]
[TR][TD] 10 [/TD][TD] Gabriel Alejandro Orozco Casillas [/TD][TD] 5 [/TD][TD] 24 [/TD][TD] 18 [/TD][TD] 41 [/TD][TD] 17 [/TD][TD] 105 [/TD][/TR]
[TR][TD] 11 [/TD][TD] Tim Wong [/TD][TD] 19 [/TD][TD] 17 [/TD][TD] 35 [/TD][TD] 59 [/TD][TD] 5 [/TD][TD] 135 [/TD][/TR]
[TR][TD] 12 [/TD][TD] Andreas Pohl [/TD][TD] 47 [/TD][TD] 34 [/TD][TD] 14 [/TD][TD] 13 [/TD][TD] 46 [/TD][TD] 154 [/TD][/TR]
[TR][TD] 13 [/TD][TD] Jakob Kogler [/TD][TD] 58 [/TD][TD] 41 [/TD][TD] 26 [/TD][TD] 20 [/TD][TD] 15 [/TD][TD] 160 [/TD][/TR]
[TR][TD] 14 [/TD][TD] Angel Lim [/TD][TD] 11 [/TD][TD] 10 [/TD][TD] 33 [/TD][TD] 51 [/TD][TD] 59 [/TD][TD] 164 [/TD][/TR]
[TR][TD] 15 [/TD][TD] Anton Rostovikov [/TD][TD] 21 [/TD][TD] 9 [/TD][TD] 41 [/TD][TD] 53 [/TD][TD] 42 [/TD][TD] 166 [/TD][/TR]
[TR][TD] 16 [/TD][TD] Muhammad Iril Khairul Anam [/TD][TD] 16 [/TD][TD] 66 [/TD][TD] 55 [/TD][TD] 24 [/TD][TD] 13 [/TD][TD] 174 [/TD][/TR]
[TR][TD] 17 [/TD][TD] Marcin Kowalczyk [/TD][TD] 1 [/TD][TD] 2 [/TD][TD] 39 [/TD][TD] 133 [/TD][TD] 1 [/TD][TD] 176 [/TD][/TR]
[TR][TD] 18 [/TD][TD] Kai Jiptner [/TD][TD] 48 [/TD][TD] 38 [/TD][TD] 29 [/TD][TD] 43 [/TD][TD] 24 [/TD][TD] 182 [/TD][/TR]
[TR][TD] 19 [/TD][TD] Riley Woo [/TD][TD] 17 [/TD][TD] 18 [/TD][TD] 27 [/TD][TD] 61 [/TD][TD] 60 [/TD][TD] 183 [/TD][/TR]
[TR][TD] 20 [/TD][TD] Callum Hales-Jepp [/TD][TD] 104 [/TD][TD] 53 [/TD][TD] 21 [/TD][TD] 12 [/TD][TD] 29 [/TD][TD] 219 [/TD][/TR]
[TR][TD] 21 [/TD][TD] Yuxin Wang (王宇欣) [/TD][TD] 12 [/TD][TD] 14 [/TD][TD] 66 [/TD][TD] 118 [/TD][TD] 14 [/TD][TD] 224 [/TD][/TR]
[TR][TD] 22 [/TD][TD] Daniel Sheppard [/TD][TD] 64 [/TD][TD] 140 [/TD][TD] 9 [/TD][TD] 6 [/TD][TD] 9 [/TD][TD] 228 [/TD][/TR]
[TR][TD] 23 [/TD][TD] Chester Lian [/TD][TD] 94 [/TD][TD] 44 [/TD][TD] 49 [/TD][TD] 37 [/TD][TD] 8 [/TD][TD] 232 [/TD][/TR]
[TR][TD] 24 [/TD][TD] Dmitry Karyakin [/TD][TD] 114 [/TD][TD] 61 [/TD][TD] 16 [/TD][TD] 10 [/TD][TD] 34 [/TD][TD] 235 [/TD][/TR]
[TR][TD] 25 [/TD][TD] Corey Sakowski [/TD][TD] 86 [/TD][TD] 47 [/TD][TD] 38 [/TD][TD] 37 [/TD][TD] 38 [/TD][TD] 246 [/TD][/TR]
[TR][TD] 26 [/TD][TD] Bence Barát [/TD][TD] 31 [/TD][TD] 22 [/TD][TD] 59 [/TD][TD] 69 [/TD][TD] 71 [/TD][TD] 252 [/TD][/TR]
[TR][TD] 27 [/TD][TD] Sebastiano Tronto [/TD][TD] 8 [/TD][TD] 16 [/TD][TD] 36 [/TD][TD] 133 [/TD][TD] 62 [/TD][TD] 255 [/TD][/TR]
[TR][TD] 28 [/TD][TD] Matthew Sheerin [/TD][TD] 51 [/TD][TD] 132 [/TD][TD] 15 [/TD][TD] 9 [/TD][TD] 50 [/TD][TD] 257 [/TD][/TR]
[TR][TD] 29 [/TD][TD] François Courtès [/TD][TD] 71 [/TD][TD] 46 [/TD][TD] 51 [/TD][TD] 39 [/TD][TD] 54 [/TD][TD] 261 [/TD][/TR]
[TR][TD] 30 [/TD][TD] István Kocza [/TD][TD] 125 [/TD][TD] 64 [/TD][TD] 45 [/TD][TD] 25 [/TD][TD] 20 [/TD][TD] 279 [/TD][/TR]
[TR][TD] 31 [/TD][TD] Linus Fresz [/TD][TD] 27 [/TD][TD] 210 [/TD][TD] 4 [/TD][TD] 7 [/TD][TD] 33 [/TD][TD] 281 [/TD][/TR]
[TR][TD] 32 [/TD][TD] Rafał Guzewicz [/TD][TD] 101 [/TD][TD] 73 [/TD][TD] 40 [/TD][TD] 30 [/TD][TD] 47 [/TD][TD] 291 [/TD][/TR]
[TR][TD] 33 [/TD][TD] Aldo Feandri [/TD][TD] 76 [/TD][TD] 50 [/TD][TD] 46 [/TD][TD] 64 [/TD][TD] 57 [/TD][TD] 293 [/TD][/TR]
[TR][TD] 34 [/TD][TD] Ville Seppänen [/TD][TD] 40 [/TD][TD] 25 [/TD][TD] 23 [/TD][TD] 11 [/TD][TD] 201 [/TD][TD] 300 [/TD][/TR]
[TR][TD] 35 [/TD][TD] Liliya Kamaltdinova [/TD][TD] 54 [/TD][TD] 40 [/TD][TD] 68 [/TD][TD] 54 [/TD][TD] 87 [/TD][TD] 303 [/TD][/TR]
[TR][TD] 36 [/TD][TD] Nikhil Mande [/TD][TD] 107 [/TD][TD] 69 [/TD][TD] 60 [/TD][TD] 45 [/TD][TD] 31 [/TD][TD] 312 [/TD][/TR]
[TR][TD] 37 [/TD][TD] Mike Hughey [/TD][TD] 109 [/TD][TD] 83 [/TD][TD] 54 [/TD][TD] 23 [/TD][TD] 49 [/TD][TD] 318 [/TD][/TR]
[TR][TD] 38 [/TD][TD] Gianfranco Huanqui [/TD][TD] 55 [/TD][TD] 32 [/TD][TD] 73 [/TD][TD] 133 [/TD][TD] 27 [/TD][TD] 320 [/TD][/TR]
[TR][TD] 39 [/TD][TD] Feliks Zemdegs [/TD][TD] 45 [/TD][TD] 72 [/TD][TD] 12 [/TD][TD] 57 [/TD][TD] 158 [/TD][TD] 344 [/TD][/TR]
[TR][TD] 40 [/TD][TD] Brandon Mikel [/TD][TD] 137 [/TD][TD] 65 [/TD][TD] 63 [/TD][TD] 36 [/TD][TD] 44 [/TD][TD] 345 [/TD][/TR]
[TR][TD] 41 [/TD][TD] Julian David [/TD][TD] 84 [/TD][TD] 84 [/TD][TD] 30 [/TD][TD] 35 [/TD][TD] 113 [/TD][TD] 346 [/TD][/TR]
[TR][TD] 42 [/TD][TD] Vincent Hartanto Utomo [/TD][TD] 111 [/TD][TD] 88 [/TD][TD] 28 [/TD][TD] 84 [/TD][TD] 37 [/TD][TD] 348 [/TD][/TR]
[TR][TD] 43 [/TD][TD] Yuhei Takagi (高木佑平) [/TD][TD] 42 [/TD][TD] 33 [/TD][TD] 43 [/TD][TD] 46 [/TD][TD] 203 [/TD][TD] 367 [/TD][/TR]
[TR][TD] 44 [/TD][TD] Antoine Cantin [/TD][TD] 92 [/TD][TD] 60 [/TD][TD] 92 [/TD][TD] 62 [/TD][TD] 64 [/TD][TD] 370 [/TD][/TR]
[TR][TD] 45 [/TD][TD] Vojtěch Dvořák [/TD][TD] 52 [/TD][TD] 35 [/TD][TD] 215 [/TD][TD] 47 [/TD][TD] 26 [/TD][TD] 375 [/TD][/TR]
[TR][TD] 46 [/TD][TD] Timothy Sun [/TD][TD] 110 [/TD][TD] 49 [/TD][TD] 56 [/TD][TD] 42 [/TD][TD] 119 [/TD][TD] 376 [/TD][/TR]
[TR][TD] 47 [/TD][TD] Simon Westlund [/TD][TD] 116 [/TD][TD] 86 [/TD][TD] 72 [/TD][TD] 52 [/TD][TD] 52 [/TD][TD] 378 [/TD][/TR]
[TR][TD] 48 [/TD][TD] Mats Bergsten [/TD][TD] 133 [/TD][TD] 110 [/TD][TD] 50 [/TD][TD] 49 [/TD][TD] 43 [/TD][TD] 385 [/TD][/TR]
[TR][TD] 49 [/TD][TD] Tim Habermaas [/TD][TD] 202 [/TD][TD] 94 [/TD][TD] 61 [/TD][TD] 27 [/TD][TD] 12 [/TD][TD] 396 [/TD][/TR]
[TR][TD] 50 [/TD][TD] Walter Pereira Rodrigues de Souza [/TD][TD] 68 [/TD][TD] 81 [/TD][TD] 117 [/TD][TD] 92 [/TD][TD] 45 [/TD][TD] 403 [/TD][/TR]
[TR][TD] 51 [/TD][TD] Tomoki Kubo (久保友樹) [/TD][TD] 136 [/TD][TD] 57 [/TD][TD] 88 [/TD][TD] 58 [/TD][TD] 91 [/TD][TD] 430 [/TD][/TR]
[TR][TD] 52 [/TD][TD] Amos Tay Swee Hui [/TD][TD] 50 [/TD][TD] 30 [/TD][TD] 19 [/TD][TD] 133 [/TD][TD] 205 [/TD][TD] 437 [/TD][/TR]
[TR][TD] 53 [/TD][TD] Akash Rupela [/TD][TD] 90 [/TD][TD] 55 [/TD][TD] 75 [/TD][TD] 125 [/TD][TD] 96 [/TD][TD] 441 [/TD][/TR]
[TR][TD] 54 [/TD][TD] Dennis Strehlau [/TD][TD] 112 [/TD][TD] 218 [/TD][TD] 52 [/TD][TD] 34 [/TD][TD] 39 [/TD][TD] 455 [/TD][/TR]
[TR][TD] 55 [/TD][TD] Cornelius Dieckmann [/TD][TD] 73 [/TD][TD] 59 [/TD][TD] 99 [/TD][TD] 102 [/TD][TD] 138 [/TD][TD] 471 [/TD][/TR]
[TR][TD] 56 [/TD][TD] Jan Bentlage [/TD][TD] 192 [/TD][TD] 113 [/TD][TD] 67 [/TD][TD] 48 [/TD][TD] 69 [/TD][TD] 489 [/TD][/TR]
[TR][TD] 57 [/TD][TD] Ivo Bakker [/TD][TD] 87 [/TD][TD] 87 [/TD][TD] 105 [/TD][TD] 133 [/TD][TD] 83 [/TD][TD] 495 [/TD][/TR]
[TR][TD] 58 [/TD][TD] Adrian Lehmann [/TD][TD] 23 [/TD][TD] 19 [/TD][TD] 77 [/TD][TD] 133 [/TD][TD] 264 [/TD][TD] 516 [/TD][/TR]
[TR][TD] 59 [/TD][TD] Gabriel Dechichi Barbar [/TD][TD] 30 [/TD][TD] 45 [/TD][TD] 270 [/TD][TD] 133 [/TD][TD] 40 [/TD][TD] 518 [/TD][/TR]
[TR][TD] 60 [/TD][TD] Shuto Ueno (上野柊斗) [/TD][TD] 165 [/TD][TD] 74 [/TD][TD] 71 [/TD][TD] 90 [/TD][TD] 122 [/TD][TD] 522 [/TD][/TR]
[TR][TD] 61 [/TD][TD] Fakhri Raihaan [/TD][TD] 152 [/TD][TD] 89 [/TD][TD] 76 [/TD][TD] 94 [/TD][TD] 114 [/TD][TD] 525 [/TD][/TR]
[TR][TD] 62 [/TD][TD] Chris Hardwick [/TD][TD] 240 [/TD][TD] 104 [/TD][TD] 25 [/TD][TD] 26 [/TD][TD] 151 [/TD][TD] 546 [/TD][/TR]
[TR][TD] 63 [/TD][TD] Maarten Smit [/TD][TD] 147 [/TD][TD] 115 [/TD][TD] 113 [/TD][TD] 88 [/TD][TD] 88 [/TD][TD] 551 [/TD][/TR]
[TR][TD] 64 [/TD][TD] Anton Krokhmal (Антон Крохмаль) [/TD][TD] 174 [/TD][TD] 82 [/TD][TD] 136 [/TD][TD] 79 [/TD][TD] 81 [/TD][TD] 552 [/TD][/TR]
[TR][TD] 65 [/TD][TD] Maxim Chechnev [/TD][TD] 170 [/TD][TD] 101 [/TD][TD] 133 [/TD][TD] 122 [/TD][TD] 36 [/TD][TD] 562 [/TD][/TR]
[TR][TD] 66 [/TD][TD] Yudanis Taqwin Rohman [/TD][TD] 32 [/TD][TD] 29 [/TD][TD] 126 [/TD][TD] 133 [/TD][TD] 245 [/TD][TD] 565 [/TD][/TR]
[TR][TD] 67 [/TD][TD] Tom Nelson [/TD][TD] 219 [/TD][TD] 117 [/TD][TD] 80 [/TD][TD] 133 [/TD][TD] 21 [/TD][TD] 570 [/TD][/TR]
[TR][TD] 68 [/TD][TD] Henrik Olsson [/TD][TD] 251 [/TD][TD] 120 [/TD][TD] 118 [/TD][TD] 55 [/TD][TD] 28 [/TD][TD] 572 [/TD][/TR]
[TR][TD] 69 [/TD][TD] Pedro Santos Guimarães [/TD][TD] 108 [/TD][TD] 75 [/TD][TD] 109 [/TD][TD] 133 [/TD][TD] 154 [/TD][TD] 579 [/TD][/TR]
[TR][TD] 70 [/TD][TD] Jiawen Wu (吴嘉文) [/TD][TD] 144 [/TD][TD] 58 [/TD][TD] 91 [/TD][TD] 74 [/TD][TD] 221 [/TD][TD] 588 [/TD][/TR]
[TR][TD] 71 [/TD][TD] Francisco Javier Lemes Sáez [/TD][TD] 10 [/TD][TD] 8 [/TD][TD] 270 [/TD][TD] 133 [/TD][TD] 169 [/TD][TD] 590 [/TD][/TR]
[TR][TD] 72 [/TD][TD] Arvid Skarrie [/TD][TD] 83 [/TD][TD] 213 [/TD][TD] 116 [/TD][TD] 76 [/TD][TD] 120 [/TD][TD] 608 [/TD][/TR]
[TR][TD] 73 [/TD][TD] Natán Riggenbach [/TD][TD] 121 [/TD][TD] 54 [/TD][TD] 270 [/TD][TD] 133 [/TD][TD] 35 [/TD][TD] 613 [/TD][/TR]
[TR][TD] 74 [/TD][TD] Milán Baticz [/TD][TD] 62 [/TD][TD] 43 [/TD][TD] 148 [/TD][TD] 133 [/TD][TD] 243 [/TD][TD] 629 [/TD][/TR]
[TR][TD] 75 [/TD][TD] Nevins Chan Pak Hoong (陈百鸿) [/TD][TD] 305 [/TD][TD] 125 [/TD][TD] 42 [/TD][TD] 33 [/TD][TD] 131 [/TD][TD] 636 [/TD][/TR]
[TR][TD] 76 [/TD][TD] Hari Anirudh [/TD][TD] 103 [/TD][TD] 42 [/TD][TD] 270 [/TD][TD] 133 [/TD][TD] 89 [/TD][TD] 637 [/TD][/TR]
[TR][TD] 77 [/TD][TD] Fabrizio Cirnigliaro [/TD][TD] 320 [/TD][TD] 146 [/TD][TD] 83 [/TD][TD] 60 [/TD][TD] 30 [/TD][TD] 639 [/TD][/TR]
[TR][TD] 78 [/TD][TD] Ramadan Sulejman [/TD][TD] 77 [/TD][TD] 63 [/TD][TD] 228 [/TD][TD] 133 [/TD][TD] 139 [/TD][TD] 640 [/TD][/TR]
[TR][TD] 79 [/TD][TD] Wojciech Szatanowski [/TD][TD] 79 [/TD][TD] 92 [/TD][TD] 270 [/TD][TD] 133 [/TD][TD] 73 [/TD][TD] 647 [/TD][/TR]
[TR][TD] 80 [/TD][TD] Shivam Bansal [/TD][TD] 124 [/TD][TD] 68 [/TD][TD] 86 [/TD][TD] 120 [/TD][TD] 256 [/TD][TD] 654 [/TD][/TR]
[TR][TD] 81 [/TD][TD] Jianyu Que (阙剑宇) [/TD][TD] 180 [/TD][TD] 78 [/TD][TD] 189 [/TD][TD] 86 [/TD][TD] 130 [/TD][TD] 663 [/TD][/TR]
[TR][TD] 82 [/TD][TD] Evan Brown [/TD][TD] 65 [/TD][TD] 482 [/TD][TD] 48 [/TD][TD] 17 [/TD][TD] 53 [/TD][TD] 665 [/TD][/TR]
[TR][TD] 83 [/TD][TD] Jonathan Midjord Shapira [/TD][TD] 191 [/TD][TD] 163 [/TD][TD] 112 [/TD][TD] 133 [/TD][TD] 84 [/TD][TD] 683 [/TD][/TR]
[TR][TD] 84 [/TD][TD] Alexey Oblaukhov [/TD][TD] 246 [/TD][TD] 134 [/TD][TD] 115 [/TD][TD] 75 [/TD][TD] 117 [/TD][TD] 687 [/TD][/TR]
[TR][TD] 85 [/TD][TD] Wicaksono Adi [/TD][TD] 234 [/TD][TD] 129 [/TD][TD] 173 [/TD][TD] 109 [/TD][TD] 47 [/TD][TD] 692 [/TD][/TR]
[TR][TD] 86 [/TD][TD] Roberto Antonio Ocmin Baráybar [/TD][TD] 26 [/TD][TD] 12 [/TD][TD] 270 [/TD][TD] 133 [/TD][TD] 253 [/TD][TD] 694 [/TD][/TR]
[TR][TD] 87 [/TD][TD] Alexander Olleta del Molino [/TD][TD] 131 [/TD][TD] 95 [/TD][TD] 270 [/TD][TD] 133 [/TD][TD] 66 [/TD][TD] 695 [/TD][/TR]
[TR][TD] 88 [/TD][TD] Yumu Tabuchi (田渕雄夢) [/TD][TD] 105 [/TD][TD] 194 [/TD][TD] 85 [/TD][TD] 133 [/TD][TD] 185 [/TD][TD] 702 [/TD][/TR]
[TR][TD] 89 [/TD][TD] Hendry Cahyadi [/TD][TD] 157 [/TD][TD] 70 [/TD][TD] 128 [/TD][TD] 133 [/TD][TD] 215 [/TD][TD] 703 [/TD][/TR]
[TR][TD] 90 [/TD][TD] Emanuel Rheinert [/TD][TD] 256 [/TD][TD] 118 [/TD][TD] 119 [/TD][TD] 119 [/TD][TD] 93 [/TD][TD] 705 [/TD][/TR]
[TR][TD] 91 [/TD][TD] David Andersson [/TD][TD] 139 [/TD][TD] 138 [/TD][TD] 270 [/TD][TD] 133 [/TD][TD] 25 [/TD][TD] 705 [/TD][/TR]
[TR][TD] 92 [/TD][TD] Lucas Wesche [/TD][TD] 175 [/TD][TD] 189 [/TD][TD] 107 [/TD][TD] 77 [/TD][TD] 160 [/TD][TD] 708 [/TD][/TR]
[TR][TD] 93 [/TD][TD] Sébastien Auroux [/TD][TD] 263 [/TD][TD] 144 [/TD][TD] 81 [/TD][TD] 116 [/TD][TD] 110 [/TD][TD] 714 [/TD][/TR]
[TR][TD] 94 [/TD][TD] Bill Wang [/TD][TD] 34 [/TD][TD] 15 [/TD][TD] 17 [/TD][TD] 133 [/TD][TD] 519 [/TD][TD] 718 [/TD][/TR]
[TR][TD] 95 [/TD][TD] Evan Liu [/TD][TD] 223 [/TD][TD] 147 [/TD][TD] 70 [/TD][TD] 85 [/TD][TD] 202 [/TD][TD] 727 [/TD][/TR]
[TR][TD] 96 [/TD][TD] Andrew Le [/TD][TD] 120 [/TD][TD] 48 [/TD][TD] 270 [/TD][TD] 133 [/TD][TD] 157 [/TD][TD] 728 [/TD][/TR]
[TR][TD] 97 [/TD][TD] Ragil Setyadi [/TD][TD] 56 [/TD][TD] 482 [/TD][TD] 95 [/TD][TD] 21 [/TD][TD] 80 [/TD][TD] 734 [/TD][/TR]
[TR][TD] 98 [/TD][TD] Jinghui Suo (索晶辉) [/TD][TD] 254 [/TD][TD] 136 [/TD][TD] 90 [/TD][TD] 80 [/TD][TD] 175 [/TD][TD] 735 [/TD][/TR]
[TR][TD] 99 [/TD][TD] Liping Jia (贾立平) [/TD][TD] 36 [/TD][TD] 482 [/TD][TD] 24 [/TD][TD] 133 [/TD][TD] 60 [/TD][TD] 735 [/TD][/TR]
[TR][TD] 100 [/TD][TD] Wojciech Moska [/TD][TD] 95 [/TD][TD] 51 [/TD][TD] 270 [/TD][TD] 133 [/TD][TD] 194 [/TD][TD] 743 [/TD][/TR]

[/TABLE]
 
Last edited:
Back
Top