From 45ec0f4383ac61b4ee196660ec525daf10172448 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CBitaET?= <“bita.et@gmail.com”> Date: Wed, 21 Sep 2022 23:07:26 -0700 Subject: [PATCH 1/4] assignment 2 added --- Assignment2/assignment2.sql | 40 +++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 Assignment2/assignment2.sql diff --git a/Assignment2/assignment2.sql b/Assignment2/assignment2.sql new file mode 100644 index 0000000..246a52c --- /dev/null +++ b/Assignment2/assignment2.sql @@ -0,0 +1,40 @@ +create index idx_batter_counts on baseball.batter_counts(game_id); +create index idx_game on baseball.game(game_id); + + +Question 1 + +annual +with t1 as (select btc.team_id, sum(btc.hit)/sum(btc.atBat) as batting_average, extract(YEAR from gm.local_date) as year +from baseball.batter_counts btc +left join baseball.game gm +on btc.game_id = gm.game_id +group by (btc.team_id)) +update table baseball.team_results tr inner join t1 +on tr.game_id = t1.game_id +set tr.annual_batting_average = t1.batting_average +limit 10; + +total +select btc.team_id, sum(btc.hit)/sum(btc.atBat) as batting_average +from baseball.batter_counts btc +left join baseball.game gm +on btc.game_id = gm.game_id +group by (btc.team_id) +limit 10; + + +Question 2 + +with t1 as (select btc.team_id, max(gm.local_date) as max from baseball.batter_counts btc +left join baseball.game gm +on btc.game_id = gm.game_id), +t2 as (select btc.team_id, sum(btc.hit)/sum(btc.atBat) as batting_average, gm.local_date +from baseball.batter_counts btc +left join baseball.game gm +on btc.game_id = gm.game_id +group by btc.team_id, btc.game_id) +select t1.team_id , avg(t2.batting_average) from t1 +right join t2 on t1.team_id = t2.team_id +where t2.local_date > date_add(t1.max, INTERVAL -100 DAY) +group by t1.team_id \ No newline at end of file From 09574f020b23a1b55b234ef2e3c968228fd8896f Mon Sep 17 00:00:00 2001 From: BitaEt <112501073+BitaEt@users.noreply.github.com> Date: Fri, 23 Sep 2022 01:23:51 -0700 Subject: [PATCH 2/4] Update assignment2.sql --- Assignment2/assignment2.sql | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/Assignment2/assignment2.sql b/Assignment2/assignment2.sql index 246a52c..0a1bf6a 100644 --- a/Assignment2/assignment2.sql +++ b/Assignment2/assignment2.sql @@ -1,40 +1,38 @@ create index idx_batter_counts on baseball.batter_counts(game_id); create index idx_game on baseball.game(game_id); +create table baseball.results (batter numeric, annual_batting_average double PRECISION, historic_batting_average double precision, rolling_batting_average double PRECISION); Question 1 annual -with t1 as (select btc.team_id, sum(btc.hit)/sum(btc.atBat) as batting_average, extract(YEAR from gm.local_date) as year +nsert into baseball.results (batter, annual_batting_average) select batter, batting_average from( +select btc.batter, sum(btc.hit)/sum(btc.atBat) as batting_average, extract(YEAR from gm.local_date) as year from baseball.batter_counts btc left join baseball.game gm on btc.game_id = gm.game_id -group by (btc.team_id)) -update table baseball.team_results tr inner join t1 -on tr.game_id = t1.game_id -set tr.annual_batting_average = t1.batting_average -limit 10; +group by (btc.batter), year +order by (btc.batter), year) as aa total -select btc.team_id, sum(btc.hit)/sum(btc.atBat) as batting_average -from baseball.batter_counts btc -left join baseball.game gm -on btc.game_id = gm.game_id -group by (btc.team_id) -limit 10; +insert into baseball.results (historic_batting_average) select batter from (select batter, sum(hit)/sum(atBat) as batting_average +from baseball.batter_counts +group by batter) +where batter = batter; Question 2 -with t1 as (select btc.team_id, max(gm.local_date) as max from baseball.batter_counts btc +with t1 as (select btc.batter, max(gm.local_date) as max from baseball.batter_counts btc left join baseball.game gm -on btc.game_id = gm.game_id), -t2 as (select btc.team_id, sum(btc.hit)/sum(btc.atBat) as batting_average, gm.local_date +on btc.game_id = gm.game_id +group by btc.batter), +t2 as (select btc.batter, sum(btc.hit)/sum(btc.atBat) as batting_average, gm.local_date from baseball.batter_counts btc left join baseball.game gm on btc.game_id = gm.game_id -group by btc.team_id, btc.game_id) -select t1.team_id , avg(t2.batting_average) from t1 -right join t2 on t1.team_id = t2.team_id +group by btc.batter, btc.game_id) +select t2.batter , avg(t2.batting_average) from t2 +right join t1 on t2.batter = t1.batter where t2.local_date > date_add(t1.max, INTERVAL -100 DAY) -group by t1.team_id \ No newline at end of file +group by t1.batter From 2b27d796dd2ceb3845d578fa2f8a8e36fc3387ef Mon Sep 17 00:00:00 2001 From: BitaEt <112501073+BitaEt@users.noreply.github.com> Date: Fri, 23 Sep 2022 17:39:30 -0700 Subject: [PATCH 3/4] Update assignment2.sql --- Assignment2/assignment2.sql | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/Assignment2/assignment2.sql b/Assignment2/assignment2.sql index 0a1bf6a..943196a 100644 --- a/Assignment2/assignment2.sql +++ b/Assignment2/assignment2.sql @@ -1,29 +1,32 @@ create index idx_batter_counts on baseball.batter_counts(game_id); create index idx_game on baseball.game(game_id); -create table baseball.results (batter numeric, annual_batting_average double PRECISION, historic_batting_average double precision, rolling_batting_average double PRECISION); +--note: commented out after code buddy reviewed this +---create table baseball.results (batter numeric, annual_batting_average double PRECISION, historic_batting_average double precision, rolling_batting_average double PRECISION); Question 1 annual -nsert into baseball.results (batter, annual_batting_average) select batter, batting_average from( +create table baseball.annual_batting_average (select batter, batting_average from( select btc.batter, sum(btc.hit)/sum(btc.atBat) as batting_average, extract(YEAR from gm.local_date) as year from baseball.batter_counts btc left join baseball.game gm on btc.game_id = gm.game_id group by (btc.batter), year -order by (btc.batter), year) as aa +having sum(btc.atBat) > 0 +order by (btc.batter), year) as aa) + total -insert into baseball.results (historic_batting_average) select batter from (select batter, sum(hit)/sum(atBat) as batting_average +create table baseball.total_batting_average (select batter, sum(hit)/sum(atBat) as batting_average from baseball.batter_counts -group by batter) -where batter = batter; +group by batter +having sum(atBat) >0); Question 2 -with t1 as (select btc.batter, max(gm.local_date) as max from baseball.batter_counts btc +create table baseball.rolling_batting_average (with t1 as (select btc.batter, max(gm.local_date) as max from baseball.batter_counts btc left join baseball.game gm on btc.game_id = gm.game_id group by btc.batter), @@ -31,8 +34,9 @@ t2 as (select btc.batter, sum(btc.hit)/sum(btc.atBat) as batting_average, gm.loc from baseball.batter_counts btc left join baseball.game gm on btc.game_id = gm.game_id -group by btc.batter, btc.game_id) +group by btc.batter, btc.game_id +having sum(btc.atBat)>0) select t2.batter , avg(t2.batting_average) from t2 right join t1 on t2.batter = t1.batter where t2.local_date > date_add(t1.max, INTERVAL -100 DAY) -group by t1.batter +group by t1.batter); From 6a1473c52c3505b0b0e0cdf4feff6496f6f61446 Mon Sep 17 00:00:00 2001 From: BitaEt <112501073+BitaEt@users.noreply.github.com> Date: Sat, 24 Sep 2022 03:17:10 -0700 Subject: [PATCH 4/4] Update assignment2.sql --- Assignment2/assignment2.sql | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Assignment2/assignment2.sql b/Assignment2/assignment2.sql index 943196a..90d859b 100644 --- a/Assignment2/assignment2.sql +++ b/Assignment2/assignment2.sql @@ -40,3 +40,10 @@ select t2.batter , avg(t2.batting_average) from t2 right join t1 on t2.batter = t1.batter where t2.local_date > date_add(t1.max, INTERVAL -100 DAY) group by t1.batter); + +--Explanation about temporary tables: +--I just created those since I thought we have to store the answers in a new table, but if not those tables are not needed and can simply be removed from the query + +drop table baseball.annual_batting_average; +drop table baseball.total_batting_average; +drop table baseball.rolling_batting_average;