2

可能重复:
mysql:在 GROUP BY 中使用 LIMIT 来获得每组 N 个结果?

我有以下数据。

id      val
smith   20
smith   10
smith    8
smith   30
jones   40
jones   10
jones   30
jones   30

然后我想要的是按 id 分组并将每个 id 的两个最大值相加。

smith   50  from 30+20
jones   70  from 40+30

谢谢。

4

1 回答 1

2

如果您不担心仅获得每个 ID 的前两个值的总和,您会想要这样:

SELECT SUM(val) FROM table_name GROUP BY id ORDER BY id ASC

但是,“我如何获得组内的前 N ​​个值”问题是重复的,在这里回答:在 GROUP BY 中使用 LIMIT 来获得每个组的 N 个结果?

于 2012-11-01T18:19:59.907 回答