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

Posted

技术标签:

【中文标题】在 MySQL 中,如何找到分组在特定列上的 N 个最大值的总和? [复制]【英文标题】:In MySQL, how can I find the sum of the N largest values grouped on a particular column? [duplicate] 【发布时间】:2012-10-22 09:20:57 【问题描述】:

可能重复: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】:

如果您不担心只获得每个 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?

【讨论】:

以上是关于在 MySQL 中,如何找到分组在特定列上的 N 个最大值的总和? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

MySQL:对列上的元素进行分组和展平

如何对多个列上的数据集进行分组并同时进行不同的聚合? Python

熊猫在一列上分组,另一列上的最大日期python

如何在 Hive 中除按列分组之外的列上应用 max 子句

在 Kendo Grid 中设置默认分组

特定列上的角度表过滤器