{"id":122,"date":"2017-09-27T14:45:34","date_gmt":"2017-09-27T21:45:34","guid":{"rendered":"http:\/\/www.ootp.cavebutter.net\/blog\/?p=122"},"modified":"2017-09-27T14:45:34","modified_gmt":"2017-09-27T21:45:34","slug":"run-environment-5-an-intermediate-table","status":"publish","type":"post","link":"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/122","title":{"rendered":"Run Environment 5: An Intermediate Table"},"content":{"rendered":"<p>In addition to using variables, Wyers also does the other thing I had thought about using: an intermediate table to store the runMinus, runPlus, and wOBAScale values. \u00a0On the one hand, this makes sense as we will only have to write out the calculations once and then refer to them in this table when we need them. \u00a0On the other hand, if we managed to use variables for defining the run values in the previous table, we should be able to do so with these values as well.<\/p>\n<p>Also, in this table, we define league wOBA. \u00a0It makes sense that the weighted On Base Average for the entire league is just the entire league&#8217;s On Base Percentage. \u00a0If we&#8217;re looking at an average for the entire league, there is nothing to weigh it against. \u00a0We&#8217;ll see this idea again when we look at wRC+.<\/p>\n<p>A few minor adjustments to the code to allow for OOTP&#8217;s naming conventions and one final difference: \u00a0I&#8217;m taking the batting stats from the league_history_batting table rather than the players_ file. \u00a0It&#8217;s already there and there are far fewer rows to sort through. \u00a0And given that we&#8217;re not filtering out any stats, it&#8217;s silly not to use it. \u00a0And, because we&#8217;re using it, we can use the column for singles (s) rather than deriving singles from H-2b-3b-HR.<\/p>\n<pre class=\"line-numbers\"><code class=\"language-sql\">#Creating an intermediate table so as not to have to write out formulae for rumMinus etc.\r\nDROP TABLE IF EXISTS tblRunValues1A;\r\nCREATE TABLE IF NOT EXISTS tblRunValues1A AS\r\nSELECT r.year\r\n, r.league_id\r\n, r.RperOut \r\n, r.runBB \r\n, r.runHB \r\n, r.run1B \r\n, r.run2B \r\n, r.run3B \r\n, r.runHR \r\n, r.runSB \r\n, r.runCS \r\n, SUM(runBB*(BB-IBB) + runHB * HP + run1B * s + run2B * d \r\n   + run3B * t + 1.4 * HR + runSB * SB - runCS * CS) \r\n   \/ SUM(AB - H + SF) AS runMinus \r\n\r\n, SUM(runBB * (BB-IBB) + runHB * HP + run1B * s + run2B * d \r\n   + run3B * t + 1.4 * HR + runSB * SB - runCS * CS) \r\n   \/ SUM(BB-IBB + HP + H) AS runPlus\r\n\r\n, SUM(H+BB-IBB+HP) \/ SUM(AB+BB-IBB+HP+SF) AS wOBA \r\n \r\nFROM tblRunValues r\r\nINNER JOIN league_history_batting_stats \r\n   ON r.year=league_history_batting_stats.year \r\n   AND r.league_id=league_history_batting_stats.league_id\r\n\r\n \r\nGROUP BY \r\nr.year\r\n, r.league_id\r\n, r.RperOut \r\n, r.runBB \r\n, r.runHB \r\n, r.run1B \r\n, r.run2B \r\n, r.run3B \r\n, r.runHR \r\n, r.runSB \r\n, r.runCS \r\n \r\nORDER BY \r\nr.year DESC;<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>In addition to using variables, Wyers also does the other thing I had thought about using: an intermediate table to store the runMinus, runPlus, and wOBAScale values. \u00a0On the one hand, this makes sense as we will only have to write out the calculations once and then refer to them in this table when we&hellip; <a class=\"more-link\" href=\"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/122\">Continue reading <span class=\"screen-reader-text\">Run Environment 5: An Intermediate Table<\/span> <span class=\"meta-nav\" aria-hidden=\"true\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[23],"tags":[14,17,7,4,6],"class_list":["post-122","post","type-post","status-publish","format-standard","hentry","category-run-environment","tag-batting","tag-leagues","tag-mysql","tag-ootp","tag-tables"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"cavebutter\"\/>\n\t<link rel=\"canonical\" href=\"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/122\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"MySQL MyStruggle | Rolling my own MySQL Database with OOTP\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Intermediate Table | MySQL MyStruggle\" \/>\n\t\t<meta property=\"og:url\" content=\"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/122\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2017-09-27T21:45:34+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2017-09-27T21:45:34+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Intermediate Table | MySQL MyStruggle\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/archives\\\/122#article\",\"name\":\"Intermediate Table | MySQL MyStruggle\",\"headline\":\"Run Environment 5: An Intermediate Table\",\"author\":{\"@id\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/archives\\\/author\\\/cavebutter#author\"},\"publisher\":{\"@id\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/#organization\"},\"datePublished\":\"2017-09-27T14:45:34-07:00\",\"dateModified\":\"2017-09-27T14:45:34-07:00\",\"inLanguage\":\"en-US\",\"commentCount\":1,\"mainEntityOfPage\":{\"@id\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/archives\\\/122#webpage\"},\"isPartOf\":{\"@id\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/archives\\\/122#webpage\"},\"articleSection\":\"Run Environment, batting, leagues, mysql, OOTP, tables\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/archives\\\/122#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/archives\\\/category\\\/run-environment#listItem\",\"name\":\"Run Environment\"}},{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/archives\\\/category\\\/run-environment#listItem\",\"position\":2,\"name\":\"Run Environment\",\"item\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/archives\\\/category\\\/run-environment\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/archives\\\/122#listItem\",\"name\":\"Run Environment 5: An Intermediate Table\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/archives\\\/122#listItem\",\"position\":3,\"name\":\"Run Environment 5: An Intermediate Table\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/archives\\\/category\\\/run-environment#listItem\",\"name\":\"Run Environment\"}}]},{\"@type\":\"Organization\",\"@id\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/#organization\",\"name\":\"MySQL MyStruggle\",\"description\":\"Rolling my own MySQL Database with OOTP\",\"url\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/archives\\\/author\\\/cavebutter#author\",\"url\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/archives\\\/author\\\/cavebutter\",\"name\":\"cavebutter\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/archives\\\/122#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3841893aa5a48e51f3ff3699f735196959f8b88a5ed3851eda2fed141b75cadc?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"cavebutter\"}},{\"@type\":\"WebPage\",\"@id\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/archives\\\/122#webpage\",\"url\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/archives\\\/122\",\"name\":\"Intermediate Table | MySQL MyStruggle\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/archives\\\/122#breadcrumblist\"},\"author\":{\"@id\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/archives\\\/author\\\/cavebutter#author\"},\"creator\":{\"@id\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/archives\\\/author\\\/cavebutter#author\"},\"datePublished\":\"2017-09-27T14:45:34-07:00\",\"dateModified\":\"2017-09-27T14:45:34-07:00\"},{\"@type\":\"WebSite\",\"@id\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/#website\",\"url\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/\",\"name\":\"MySQL MyStruggle\",\"description\":\"Rolling my own MySQL Database with OOTP\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"http:\\\/\\\/www.ootp.cavebutter.net\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Intermediate Table | MySQL MyStruggle","description":"","canonical_url":"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/122","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/122#article","name":"Intermediate Table | MySQL MyStruggle","headline":"Run Environment 5: An Intermediate Table","author":{"@id":"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/author\/cavebutter#author"},"publisher":{"@id":"http:\/\/www.ootp.cavebutter.net\/blog\/#organization"},"datePublished":"2017-09-27T14:45:34-07:00","dateModified":"2017-09-27T14:45:34-07:00","inLanguage":"en-US","commentCount":1,"mainEntityOfPage":{"@id":"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/122#webpage"},"isPartOf":{"@id":"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/122#webpage"},"articleSection":"Run Environment, batting, leagues, mysql, OOTP, tables"},{"@type":"BreadcrumbList","@id":"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/122#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"http:\/\/www.ootp.cavebutter.net\/blog#listItem","position":1,"name":"Home","item":"http:\/\/www.ootp.cavebutter.net\/blog","nextItem":{"@type":"ListItem","@id":"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/category\/run-environment#listItem","name":"Run Environment"}},{"@type":"ListItem","@id":"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/category\/run-environment#listItem","position":2,"name":"Run Environment","item":"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/category\/run-environment","nextItem":{"@type":"ListItem","@id":"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/122#listItem","name":"Run Environment 5: An Intermediate Table"},"previousItem":{"@type":"ListItem","@id":"http:\/\/www.ootp.cavebutter.net\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/122#listItem","position":3,"name":"Run Environment 5: An Intermediate Table","previousItem":{"@type":"ListItem","@id":"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/category\/run-environment#listItem","name":"Run Environment"}}]},{"@type":"Organization","@id":"http:\/\/www.ootp.cavebutter.net\/blog\/#organization","name":"MySQL MyStruggle","description":"Rolling my own MySQL Database with OOTP","url":"http:\/\/www.ootp.cavebutter.net\/blog\/"},{"@type":"Person","@id":"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/author\/cavebutter#author","url":"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/author\/cavebutter","name":"cavebutter","image":{"@type":"ImageObject","@id":"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/122#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/3841893aa5a48e51f3ff3699f735196959f8b88a5ed3851eda2fed141b75cadc?s=96&d=mm&r=g","width":96,"height":96,"caption":"cavebutter"}},{"@type":"WebPage","@id":"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/122#webpage","url":"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/122","name":"Intermediate Table | MySQL MyStruggle","inLanguage":"en-US","isPartOf":{"@id":"http:\/\/www.ootp.cavebutter.net\/blog\/#website"},"breadcrumb":{"@id":"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/122#breadcrumblist"},"author":{"@id":"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/author\/cavebutter#author"},"creator":{"@id":"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/author\/cavebutter#author"},"datePublished":"2017-09-27T14:45:34-07:00","dateModified":"2017-09-27T14:45:34-07:00"},{"@type":"WebSite","@id":"http:\/\/www.ootp.cavebutter.net\/blog\/#website","url":"http:\/\/www.ootp.cavebutter.net\/blog\/","name":"MySQL MyStruggle","description":"Rolling my own MySQL Database with OOTP","inLanguage":"en-US","publisher":{"@id":"http:\/\/www.ootp.cavebutter.net\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"MySQL MyStruggle | Rolling my own MySQL Database with OOTP","og:type":"article","og:title":"Intermediate Table | MySQL MyStruggle","og:url":"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/122","article:published_time":"2017-09-27T21:45:34+00:00","article:modified_time":"2017-09-27T21:45:34+00:00","twitter:card":"summary","twitter:title":"Intermediate Table | MySQL MyStruggle"},"aioseo_meta_data":{"post_id":"122","title":"Intermediate  Table | #site_title","description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2021-02-03 03:39:37","updated":"2025-12-10 01:12:40","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"http:\/\/www.ootp.cavebutter.net\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/category\/run-environment\" title=\"Run Environment\">Run Environment<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tRun Environment 5: An Intermediate Table\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"http:\/\/www.ootp.cavebutter.net\/blog"},{"label":"Run Environment","link":"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/category\/run-environment"},{"label":"Run Environment 5: An Intermediate Table","link":"http:\/\/www.ootp.cavebutter.net\/blog\/archives\/122"}],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9cxb5-1Y","jetpack_likes_enabled":true,"jetpack-related-posts":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"http:\/\/www.ootp.cavebutter.net\/blog\/wp-json\/wp\/v2\/posts\/122","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.ootp.cavebutter.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.ootp.cavebutter.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.ootp.cavebutter.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.ootp.cavebutter.net\/blog\/wp-json\/wp\/v2\/comments?post=122"}],"version-history":[{"count":2,"href":"http:\/\/www.ootp.cavebutter.net\/blog\/wp-json\/wp\/v2\/posts\/122\/revisions"}],"predecessor-version":[{"id":124,"href":"http:\/\/www.ootp.cavebutter.net\/blog\/wp-json\/wp\/v2\/posts\/122\/revisions\/124"}],"wp:attachment":[{"href":"http:\/\/www.ootp.cavebutter.net\/blog\/wp-json\/wp\/v2\/media?parent=122"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.ootp.cavebutter.net\/blog\/wp-json\/wp\/v2\/categories?post=122"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.ootp.cavebutter.net\/blog\/wp-json\/wp\/v2\/tags?post=122"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}