.Rhistory 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. sqlRacesIds = "SELECT GROUP_CONCAT(g.id) FROM (SELECT id, raceNumber, raceDate, Result FROM `Results` group BY RaceDate, RaceNumber HAVING count(RaceNumber) > 5 AND Result = 1 ORDER BY `Results`.`raceDate` DESC) AS g"
  2. test = dbSendQuery(sqlRacesIds)
  3. library(RMySQL)
  4. mydb = dbConnect(MySQL(), user="atg", password="CvWKY34DqtlVgjt_9", host="nordh.xyz", dbname="atg")
  5. sqlRacesWithEnoughParticipants = "SELECT raceNumber, raceDate, Result FROM `Results` group BY RaceDate, RaceNumber HAVING count(RaceNumber) > 5 AND Result = 1
  6. ORDER BY `Results`.`raceDate` DESC"
  7. sqlRacesIds = "SELECT GROUP_CONCAT(g.id) FROM (SELECT id, raceNumber, raceDate, Result FROM `Results` group BY RaceDate, RaceNumber HAVING count(RaceNumber) > 5 AND Result = 1 ORDER BY `Results`.`raceDate` DESC) AS g"
  8. test = dbSendQuery(sqlRacesIds)
  9. sqlRacesIds = "SELECT GROUP_CONCAT(g.id) FROM (SELECT id, raceNumber, raceDate, Result FROM `Results` group BY RaceDate, RaceNumber HAVING count(RaceNumber) > 5 AND Result = 1 ORDER BY `Results`.`raceDate` DESC) AS g"
  10. test = dbSendQuery(mydb, sqlRacesIds)
  11. View(test)
  12. View(test)
  13. testRs = fetch(test, n=-1)
  14. View(testRs)
  15. View(testRs)
  16. View(testRs)
  17. View(testRs)
  18. View(testRs)
  19. inspect(testRs)
  20. Inspect(testRs)
  21. print(testRs)
  22. sqlRacesIds = "SET SESSION group_concat_max_len = 1000000;SELECT GROUP_CONCAT(g.id) FROM (SELECT id, raceNumber, raceDate, Result FROM `Results` group BY RaceDate, RaceNumber HAVING count(RaceNumber) > 5 AND Result = 1 ORDER BY `Results`.`raceDate` DESC) AS g"
  23. test = dbSendQuery(mydb, sqlRacesIds)
  24. testRs = fetch(test, n=-1)
  25. print(testRs)
  26. dbSendQuery(mydb, "SET SESSION group_concat_max_len = 1000000")
  27. sqlRacesIds = "SELECT GROUP_CONCAT(g.id) FROM (SELECT id, rac
  28. ""
  29. )
  30. ""
  31. sqlRacesWithEnoughParticipants = "SELECT raceNumber, raceDate, Result FROM `Results` group BY RaceDate, RaceNumber HAVING count(RaceNumber) > 5 AND Result = 1
  32. ORDER BY `Results`.`raceDate` DESC"
  33. dbSendQuery(mydb, "SET SESSION group_concat_max_len = 1000000")
  34. sqlRacesIds = "SELECT GROUP_CONCAT(g.id) FROM (SELECT id, raceNumber, raceDate, Result FROM `Results` group BY RaceDate, RaceNumber HAVING count(RaceNumber) > 5 AND Result = 1 ORDER BY `Results`.`raceDate` DESC) AS g"
  35. test = dbSendQuery(mydb, sqlRacesIds)
  36. testRs = fetch(test, n=-1)
  37. print(testRs)
  38. View(testRs)
  39. View(testRs)
  40. newSql = "SELECT r1.*,
  41. ROUND(AVG(horseResults.time),4) as HorseAvgTime, ROUND(AVG(driverResults.time),4) horseAvgTime,
  42. ROUND(AVG(IF(horseResults.Distance = r1.Distance, horseResults.time, null)),4) driverAvgTime,
  43. ROUND(AVG(IF((horseResults.Distance = r1.Distance AND horseResults.Time > 0), horseResults.time, null)),4) horseAvgByDistance
  44. ROUND(AVG(IF((driverResults.Distance = r1.Distance AND driverResults.Time > 0), driverResults.time, null)),4) driverAvgByDistance
  45. FROM Results r1
  46. INNER JOIN Results horseResults ON r1.RaceDate > horseResults.RaceDate AND r1.HorseId = horseResults.HorseId
  47. INNER JOIN Results driverResults ON r1.RaceDate > driverResults.RaceDate AND r1.DriverId = driverResults.DriverId
  48. WHERE r1.raceNumber = 10 AND r1.RaceDate = '2021-02-08'
  49. GROUP BY r1.horseId"
  50. newSql = "SELECT r1.*, ROUND(AVG(horseResults.time),4) as HorseAvgTime, ROUND(AVG(driverResults.time),4) horseAvgTime, ROUND(AVG(IF(horseResults.Distance = r1.Distance, horseResults.time, null)),4) driverAvgTime,ROUND(AVG(IF((horseResults.Distance = r1.Distance AND horseResults.Time > 0), horseResults.time, null)),4) horseAvgByDistance, ROUND(AVG(IF((driverResults.Distance = r1.Distance AND driverResults.Time > 0), driverResults.time, null)),4) driverAvgByDistance, FROM Results r1 INNER JOIN Results horseResults ON r1.RaceDate > horseResults.RaceDate AND r1.HorseId = horseResults.HorseId INNER JOIN Results driverResults ON r1.RaceDate > driverResults.RaceDate AND r1.DriverId = driverResults.DriverId WHERE r1.raceNumber = 10 AND r1.RaceDate = '2021-02-08' GROUP BY r1.horseId"
  51. newRs = dbSendQuery(mydb, newSql)
  52. # With AVG per distance
  53. newSql = "SELECT r1.*, ROUND(AVG(horseResults.time),4) as HorseAvgTime, ROUND(AVG(driverResults.time),4) as horseAvgTime, ROUND(AVG(IF(horseResults.Distance = r1.Distance, horseResults.time, null)),4) as driverAvgTime, ROUND(AVG(IF((horseResults.Distance = r1.Distance AND horseResults.Time > 0), horseResults.time, null)),4) as horseAvgByDistance, ROUND(AVG(IF((driverResults.Distance = r1.Distance AND driverResults.Time > 0), driverResults.time, null)),4) as driverAvgByDistance, FROM Results r1 INNER JOIN Results horseResults ON r1.RaceDate > horseResults.RaceDate AND r1.HorseId = horseResults.HorseId INNER JOIN Results driverResults ON r1.RaceDate > driverResults.RaceDate AND r1.DriverId = driverResults.DriverId WHERE r1.raceNumber = 10 AND r1.RaceDate = '2021-02-08' GROUP BY r1.horseId"
  54. newSql = "SELECT r1.*, ROUND(AVG(horseResults.time),4) as HorseAvgTime, ROUND(AVG(driverResults.time),4) as horseAvgTime, ROUND(AVG(IF(horseResults.Distance = r1.Distance, horseResults.time, null)),4) as driverAvgTime, ROUND(AVG(IF((horseResults.Distance = r1.Distance AND horseResults.Time > 0), horseResults.time, null)),4) as horseAvgByDistance, ROUND(AVG(IF((driverResults.Distance = r1.Distance AND driverResults.Time > 0), driverResults.time, null)),4) as driverAvgByDistance, FROM Results r1 INNER JOIN Results horseResults ON r1.RaceDate > horseResults.RaceDate AND r1.HorseId = horseResults.HorseId INNER JOIN Results driverResults ON r1.RaceDate > driverResults.RaceDate AND r1.DriverId = driverResults.DriverId WHERE r1.raceNumber = 10 AND r1.RaceDate = '2021-02-08' GROUP BY r1.horseId"
  55. newRs = dbSendQuery(mydb, newSql)
  56. newSql = "SELECT r1.*, ROUND(AVG(horseResults.time),4) as HorseAvgTime, ROUND(AVG(driverResults.time),4) as horseAvgTime, ROUND(AVG(IF(horseResults.Distance = r1.Distance, horseResults.time, null)),4) as driverAvgTime, ROUND(AVG(IF((horseResults.Distance = r1.Distance AND horseResults.Time > 0), horseResults.time, null)),4) as horseAvgByDistance, ROUND(AVG(IF((driverResults.Distance = r1.Distance AND driverResults.Time > 0), driverResults.time, null)),4) as driverAvgByDistance FROM Results r1 INNER JOIN Results horseResults ON r1.RaceDate > horseResults.RaceDate AND r1.HorseId = horseResults.HorseId INNER JOIN Results driverResults ON r1.RaceDate > driverResults.RaceDate AND r1.DriverId = driverResults.DriverId WHERE r1.raceNumber = 10 AND r1.RaceDate = '2021-02-08' GROUP BY r1.horseId"
  57. newRs = dbSendQuery(mydb, newSql)
  58. newRes = fetch(newRs, -1)
  59. View(newRs)
  60. View(newRes)