[英]Calculate the variance of the weights of all players
我們從 nba 獲得數據,其中每個表的描述如下:
coaches_season,每個元組描述一個教練在一個賽季的表現;[cid, year, yr_order, year, season_win, season_loss, play_off_win, play_off_loss, tid]
團隊,每個元組給出一個團隊的基本信息; [tid,位置,名稱,聯賽]
玩家,每個元組給出一個玩家的基本信息; [ilkid,名字,姓氏,position,first_season,last_season,h_feet,h_inches,體重,大學,生日]
player_rs,每個元組給出了一名球員在一個常規賽中的詳細表現; [ilkid,tid,pts,asts,of,ftm,tpa,tpm,fgm,fga,fta,blk,營業額,stl,dreb,oreb,reb,分鍾,gp,聯賽,姓氏,名字,年份]
player_rs_career,每個元組都給出了一名球員在其職業生涯中的詳細常規賽表現;[ilkid, firstname, lastname, fga, fgm, fta, ftm, tpa, tpm, pf, stl, oreb, minutes, gp, dreb , asts, 失誤, blk, reb, 聯賽]
選秀,每個元組顯示NBA選秀的信息。 [draft_year, firstname, lastname, draft_round, tid, selection, draft_from, ilkid, 聯賽]
我發現了很多查詢,但被這 3 個查詢卡住了:
I) 對於每所大學,打印大學名稱和他們發送給 NBA 的平均選秀數(每個賽季)。 但是,只報告那些在至少 3 個賽季中發送選秀的大學。
II) 計算所有玩家權重的方差;
III) 打印職業生涯得分超過 12000 分或效力超過 12 個賽季的人的姓名。
如果您想要一個明確的答案,我建議您按照“如何提問”的幫助部分進行操作。 在這種情況下,尤其是每個表的 DDL,包括主鍵和外鍵定義。 還包括示例數據,作為文本,而不是圖像,以及來自該數據的預期 output。 此外,在這種情況下,您可能希望包含列名的定義,因為並非每個人都熟悉 NBA 使用的首字母縮略詞。
話雖如此,我會給它一個刺。 請注意,由於您沒有包含測試數據或表定義,因此尚未測試查詢。
-- I) For each college, print the college name and average number of drafts (per season) they sent to NBA.
-- However, only report those colleges that sent drafts in at least 3 seasons.
-- assumptions:
-- draft yr integer specifying calendar year of draft
-- draft_from text name of college
-- average number of drafts (per season) ?? how many drafts are there per season
-- what is the difference between season and year
with draft as
(select max(draft_yr) dy from draft_year)
, dy_last3 as
(select distinct draft_from df
from draft_year
where exists (select null from draft_year, draft where draft_yr = dy)
and exists (select null from draft_year, draft where draft_yr = dy-1)
and exists (select null from draft_year, draft where draft_yr = dy-2)
)
select draft_from, round(avg(drc),2) adv_drafts
from (
select draft_from, draft_yr, count(*) drc
from draft_year
where draft_from in (select df from dy_last3)
group by draft_from,draft_yr
) t
group by draft_from;
-- II) Calculate the variance of the weights of all players;
-- assumption: weight defined as float;
select var_samp(weight) from player;
OR
select var_pop(weight) from player;
-- III)Print the first and last names of those who either scored more than 12000 points in their careers or played for more than 12 seasons.
-- assumption fgm => field goals made = 2 points each
-- ftm => free throws made = 1 point each
-- tpm => 3 point shot make = 3 points each
-- ilkid => Pk in player and FK in player_rs_career
-- table player_rs_career does include last/current season
-- note player_rs_career does NOT contain year/season, unless hidden by undescribed column name
select distinct *
from (select p.firstname, p.lastname
, sum(ftm + (2*fgm) + (3*tpm)) over (partition by p.ilkid) points
, (coalesce (p.last_season, extract (year from now())::integer) - p.first_season + 1) seasons
from player p
join player_rs_career pc
on p.ilkid = pc.ilkid
) pp
where points > 12000
or seasons > 12;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.