在MySQL中,如何找到在特定列上分组的N个最大值的总和?

时间:2012-11-01 18:07:17

标签: mysql sql

  

可能重复:
  mysql: Using LIMIT within GROUP BY to get N results per group?

我有以下数据。

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

感谢。

1 个答案:

答案 0 :(得分:2)

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

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

但是,“我如何获得组内的前N个值”问题是重复的,在此处回答:Using LIMIT within GROUP BY to get N results per group?