2013-11-23 42 views
1

我會解釋清楚: 我的位置SQL從集團獲得大部分的計數值通過

球員在一個桌上曲棍球統計12:

StatsID/PlayerID /Position/gamesPlayed/points/Season 
1 / 12 /RW / 40 /32 /2013-2014 
2 / 12 /Def /  1 / 1 /2013-2014 

所以我想這樣
查詢

Select PlayerID , Season , sum(gamesPlayed) as GP, sum(points) as pts , ???? from 
MyPointTable GROUP BY PlayerID, SEASON 

我想替換我的????那會讓我扮演最多的角色,所以他像RW一樣玩40場比賽。我無法計數,我無法總結。

SQL結果應該給

ID , Season , GP , pts, MostPosition 
12 , 2013-2014 , 41 , 33 , RW 

感謝

+0

你在哪個數據庫上? – iruvar

+0

你對我的回答有什麼好運嗎? –

+0

它是SQL Server。 @布賴恩Tyr閱讀有關子查詢,沒有得到時間來測試你的答案。最後我找到了別的東西。謝謝 – baronming

回答

2

這適用於PostgreSQL:

SELECT 
    PlayerID AS ID, 
    Season, 
    subQuery.sqTotalGames AS GP, 
    subQuery.sqTotalPoints AS pts, 
    position AS MostPosition 
FROM 
    MyPointTable 
    INNER JOIN 
     (
      SELECT 
       PlayerID as sqPlayerID, 
       MAX(gamesPlayed) as sqMaxGames, 
       SUM(gamesPlayed) as sqTotalGames, 
       SUM(points) AS sqTotalPoints 
      FROM 
       MyPointTable 
      GROUP by playerID 
     ) subQuery 
      ON subQuery.sqMaxGames = gamesPlayed 
       AND subQuery.sqPlayerID = PlayerID;