Advertisement
Guest User

Untitled

a guest
Dec 6th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.22 KB | None | 0 0
  1. CREATE TABLE PrimPos AS
  2. SELECT playerID
  3. , yearID
  4. , teamID
  5. , MAX(G) AS G
  6. , POS
  7. FROM (SELECT * from fielding
  8. WHERE IF(yearID>1995 AND POS = "OF",1,0) != 1 ORDER BY G Desc) f
  9. GROUP BY playerID, yearID, teamID, POS;
  10.  
  11.  
  12. CREATE VIEW LeagueRunsPerOut
  13. AS SELECT p.yearID
  14. , Sum(p.R)/Sum(p.IPouts) AS RperOut
  15. , Sum(p.R) AS totR
  16. , Sum(p.IPouts) AS totOuts
  17. FROM
  18. PrimPos
  19. INNER JOIN
  20. pitching p
  21. ON PrimPos.yearID = p.yearID
  22. AND PrimPos.playerID = p.playerID
  23. WHERE PrimPos.POS="P"
  24. GROUP BY p.yearID;
  25.  
  26.  
  27. CREATE TABLE RunValues
  28. AS SELECT yearID
  29. , RperOut
  30. , @rb := RperOut+0.14 AS runBB
  31. , @rb+0.025 AS runHB
  32. , @rs := @rb+0.155 AS run1B
  33. , @rd := @rs+0.3 AS run2B
  34. , @rd+0.27 AS run3B
  35. , 1.4 AS runHR
  36. , 0.2 AS runSB
  37. , 2*RperOut+0.075 AS runCS
  38. FROM LeagueRunsPerOut;
  39.  
  40.  
  41. CREATE TABLE RunValues1A AS
  42. SELECT r.yearID
  43. , r.RperOut
  44. , r.runBB
  45. , r.runHB
  46. , r.run1B
  47. , r.run2B
  48. , r.run3B
  49. , r.runHR
  50. , r.runSB
  51. , r.runCS
  52. , SUM(runBB*(BB-COALESCE(IBB,0))+runHB*COALESCE(HBP,0)+run1B*(H-X2B-X3b-HR)+run2B*X2B+run3B*X3B+1.4*HR+runSB*COALESCE(SB,0)-runCS*COALESCE(CS,0))/
  53. SUM(AB-H+COALESCE(SF,0)) AS runMinus
  54.  
  55. , SUM(runBB*(BB-COALESCE(IBB,0))+runHB*COALESCE(HBP,0)+run1B*(H-X2b-X3b-HR)+run2B*X2B+run3B*X3B+1.4*HR+runSB*COALESCE(SB,0)-runCS*COALESCE(CS,0))/
  56. SUM(BB-COALESCE(IBB,0)+COALESCE(HBP,0)+H) AS runPlus
  57.  
  58. , SUM(H+BB-COALESCE(IBB,0)+COALESCE(HBP,0))/
  59. SUM(AB+BB-COALESCE(IBB,0)+COALESCE(HBP,0)+COALESCE(SF,0)) AS wOBA
  60.  
  61. ,SUM(AB), SUM(R), SUM(H), SUM(X2B), SUM(X3B), SUM(HR), SUM(CS), SUM(BB), SUM(IBB), SUM(HBP), SUM(SF)
  62.  
  63. FROM
  64. RunValues r
  65. INNER JOIN
  66. (
  67. batting b
  68. INNER JOIN
  69. PrimPos p
  70. ON b.playerID = p.playerID
  71. AND b.yearID = p.yearID
  72. )
  73. ON r.yearID = b.yearID
  74.  
  75. GROUP BY
  76. r.yearID
  77. , r.RperOut
  78. , r.runBB
  79. , r.runHB
  80. , r.run1B
  81. , r.run2B
  82. , r.run3B
  83. , r.runHR
  84. , r.runSB
  85. , r.runCS
  86.  
  87. ORDER BY
  88. r.yearID DESC;
  89.  
  90.  
  91. CREATE TABLE RunValues2 AS
  92. SELECT yearID
  93. , RperOut
  94. , runBB
  95. , runHB
  96. , run1B
  97. , run2B
  98. , run3B
  99. , runHR
  100. , runSB
  101. , runCS
  102. , runMinus
  103. , runPlus
  104. , wOBA
  105. , @ws := 1/(runPlus+runMinus) AS wOBAscale
  106. , (runBB+runMinus)*@ws AS wobaBB
  107. , (runHB+runMinus)*@ws AS wobaHB
  108. , (run1B+runMinus)*@ws AS woba1B
  109. , (run2B+runMinus)*@ws AS woba2B
  110. , (run3B+runMinus)*@ws AS woba3B
  111. , (runHR+runMinus)*@ws AS wobaHR
  112. , runSB*@ws AS wobaSB
  113. , runCS*@ws AS wobaCS
  114. FROM RunValues1A;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement