如何使用 MySQL 查询排除最新数据后各类型的 Num 总和?

如何使用 mysql 查询排除最新数据后各类型的 num 总和?

按时间排序并按类型分组后计算 type 的 num 总和

给定数据表中包含按时间排序和按类型分组的数据。要计算排除最新一条数据后,其余 num 的总和,可以在 mysql 中使用如下查询:

SELECT t.type, SUM(t.num)
FROM (
    SELECT type, num, ROW_NUMBER() OVER (PARTITION BY type ORDER BY time DESC ) AS row_num
    FROM C
) t
WHERE t.row_num != 1
GROUP BY t.type

这段查询使用 cte(通用表表达式)进行以下步骤:

  1. 添加行号:为每个类型按时间降序计算行号 row_num。
  2. 过滤出非最新数据:选择 row_num 不等于 1 的行,从而排除最新数据。
  3. 按类型分组求和:将剩余数据按类型分组并计算 num 的总和。

最终,查询返回了一个表格,其中包含按类型分组的 num 总和,排除了最新一条数据。

以上就是如何使用 MySQL 查询排除最新数据后各类型的 Num 总和?的详细内容,更多请关注其它相关文章!