MySQL - 唯一行的平均值

3
如果我有三列:
id, user, points

我的数据是:

+-------+------------------+-------------+
|   id  |       user       |  points     |
+-------+------------------+-------------+
|   1   |       A          |    100      |
+-------+------------------+-------------+
|   1   |       A          |    200      |
+-------+------------------+-------------+
|   2   |       B          |    300      |
+-------+------------------+-------------+
|   2   |       B          |    400      |
+-------+------------------+-------------+

我希望只计算每个用户的最高分数的平均值。 例如,对于这个例子,我希望得到的结果是300分 ((200+400)/2)。
当我使用以下Mysql查询时,我得到了250分:
SELECT avg(points) FROM table
2个回答

2

SQL演示

试一下这个:

SELECT avg(points) FROM (
    SELECT max(points) as points FROM table1 group by id
) as T

首先获取每个用户的最大点数,然后从这些点数中获取平均值 AVG


1
谢谢大家。@Md. Suman Kabir的解决方案对我有用。 - Sara Z

0

你应该先通过使用获取最大组,然后对这个子查询求平均值

SELECT AVG(points) 
FROM (SELECT MAX(points) FROM your_table GROUP BY user)  subt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接