我在 MySQL 中有一个这样的表。我想计算平均值(列值)但不使用所有行。对于每个组(列组),我只想使用一个值,如果该组中有多个行,则使用最大的排名(列排名)。
+----+-------+-------+------+
| ID | Value | Group | Rank |
+----+-------+-------+------+
| 1 | 10 | 1 | 1 |
+----+-------+-------+------+
| 2 | 9 | 1 | 2 |
+----+-------+-------+------+
| 3 | 7 | 2 | 2 |
+----+-------+-------+------+
| 4 | 10 | 2 | 1 |
+----+-------+-------+------+
| 5 | 11 | 3 | 1 |
+----+-------+-------+------+
| 6 | 9 | 4 | 1 |
+----+-------+-------+------+
| 7 | 8 | 5 | 1 |
+----+-------+-------+------+
| 8 | 10 | 6 | 2 |
+----+-------+-------+------+
| 9 | 9 | 7 | 1 |
+----+-------+-------+------+
因此,在第 1 组中,我必须使用第 2 行中的值 9,因为它的排名最高。在第 2 组中,我将使用第 3 行中的值 7,因为它的排名最高。其余的我将使用唯一的值,因为没有其他选择。 最后,我想计算第 2、3、5、6、7、8、9 行值的平均值。 我怎样才能在一个查询中做到这一点?