如何根据另一列的值获得一列的平均值?

时间:2016-12-12 04:04:46

标签: mysql sql-server

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部分。我使用子查询进行的任何尝试都会导致错误说明:

  

子查询返回多行。

任何人都可以给予的任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

听起来像是在寻找GROUP BY

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

答案 1 :(得分:0)

请尝试以下查询。我希望你正在寻找这个解决方案。

LIVE DEMO

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

<强>输出:

enter image description here