2016-12-12 9 views
0

SQL質問別の列の値に基づいて平均して1列を取得するにはどうすればよいですか?

私は現在、別の列の共有値に基づいて、列の特定のサブセットの平均値を取得しようとしています。ここではいくつかのサンプルデータです:

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

だから私はプレイヤー2のとは別に、プレイヤー1のスコアの平均値を取得できますか?

SELECT AVG(score) FROM table WHERE DISTINCT player 

しかし、もちろん、distinctのみ、クエリのselect部分で動作します。私が最初に考えたのようなものを試してみることです。サブクエリを使用しようとすると、次のエラーが発生します。

サブクエリは複数の行を返します。

誰でも助けてくれれば幸いです。あなたがGROUP BYを探しているよう

+0

あなたはどのように私はプレイヤー2のとは別にプレイヤー1のスコアの平均値を得ることができます**によって何を意味するのですか?上記のデータセットに期待される出力を加えてください。 Btw、 '... WHERE Player = 1'が行います。 – 1000111

+1

あなたはsql-serverまたはmysqlを使用していますか? ansi sql準拠の回答が必要な場合は、単にsqlで質問にタグを付けることができます – ughai

答えて

2

サウンズ:

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

関連する問題