2016-12-12 76 views
0

SQL問題如何根據另一列的值得到一列的平均值?

目前我正在試圖讓基於另一列的共享值的列的某個子集的平均水平。以下是一些示例數據:

Score  Player 
    5   1 
    9   1 
    7   1 
    8   2 
    3   2 
    6   2 

那麼,如何才能將玩家1的得分與玩家2的平均值分開?我首先想到的是去嘗試這樣的:

SELECT AVG(score) FROM table WHERE DISTINCT player 

但是,當然,distinct只能在查詢的select部分。任何嘗試使用子查詢都會導致錯誤:

子查詢返回多個行。

任何人可以給予任何援助將不勝感激。

+0

什麼呢你的意思**我怎麼能分開玩家2的獲得玩家1的評分的平均值**?請爲上述數據集添加您的預期輸出。順便說一句,'...... WHERE Player = 1'會做。 – 1000111

+1

你使用sql-server或mysql嗎?或者你可以用sql來標記問題,如果你想要ansi sql兼容的答案 – ughai

回答

2

聽起來你正在尋找GROUP BY

SELECT Player, AVG(Score) 
    FROM my_table 
GROUP BY Player; 
0

試試這個下面的查詢。我希望你正在尋找這個解決方案。

LIVE DEMO

SELECT 
    Player, 
    AVG(Score) AS Avarage 
FROM 
    table_name 
GROUP BY 
    Player 

輸出:

enter image description here

相關問題