如果我有三列:
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
答案 0 :(得分:2)
试试这个:
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