【发布时间】:2014-04-06 07:13:08
【问题描述】:
我有一个表,其中包含一个类似于下面的数据集。有数千个条目具有组 ID 和数量。
+-------+--------+
| Group | amount |
+-------+--------+
| 1 | 10 |
| 1 | 15 |
| 1 | 11 |
| 1 | 5 |
| 1 | 100 |
| 2 | 200 |
| 2 | 8 |
| 2 | 12 |
| 2 | 23 |
| 2 | 40 |
| 2 | 40 |
| 2 | 40 |
| 3 | 3 |
| 3 | 3 |
+-------+--------+
对于每个组,我需要组内金额最高的前三个条目的(四舍五入)平均值。如果该组的条目少于三个,则平均值基于可用条目。
潜在表可能如下所示,例如第 1 组:(100 + 15 + 11)/3 = 42:
+-------+--------+
| Group | amount |
+-------+--------+
| 1 | 42 |
| 2 | 92 |
| 3 | 3 |
+-------+--------+
每个组可以有 1 个或多个条目,并且数量是正整数,但它们可以具有相同的值。
我玩过 Group by 和 order by,但它似乎并不正确。任何帮助表示赞赏。谢谢。
【问题讨论】:
-
你用的是什么数据库?
标签: sql group-by sql-order-by