簡體   English   中英

計算所有玩家權重的方差

[英]Calculate the variance of the weights of all players

我們從 nba 獲得數據,其中每個表的描述如下:

  1. coaches_season,每個元組描述一個教練在一個賽季的表現;[cid, year, yr_order, year, season_win, season_loss, play_off_win, play_off_loss, tid]

  2. 團隊,每個元組給出一個團隊的基本信息; [tid,位置,名稱,聯賽]

  3. 玩家,每個元組給出一個玩家的基本信息; [ilkid,名字,姓氏,position,first_season,last_season,h_feet,h_inches,體重,大學,生日]

  4. player_rs,每個元組給出了一名球員在一個常規賽中的詳細表現; [ilkid,tid,pts,asts,of,ftm,tpa,tpm,fgm,fga,fta,blk,營業額,stl,dreb,oreb,reb,分鍾,gp,聯賽,姓氏,名字,年份]

  5. player_rs_career,每個元組都給出了一名球員在其職業生涯中的詳細常規賽表現;[ilkid, firstname, lastname, fga, fgm, fta, ftm, tpa, tpm, pf, stl, oreb, minutes, gp, dreb , asts, 失誤, blk, reb, 聯賽]

  6. 選秀,每個元組顯示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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM