MySQL - 唯一行的平均值

时间:2018-01-17 11:01:04

标签: php mysql sql

如果我有三列:

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 个答案:

答案 0 :(得分:2)

SQL DEMO

试试这个:

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

首先获取每个用户的max分,然后从中获取AVG

答案 1 :(得分:0)

首先应该使用max group以及该子查询的avg

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