【问题标题】:MySQL Select records exceeding the cumulative totalMySQL 选择超过累计总数的记录
【发布时间】:2021-11-05 06:14:06
【问题描述】:

鉴于我有下表

Id FileSizeMB
1 100
2 100
3 100
4 100
5 100
6 100

我想选择超过累积值的最旧记录,在本例中为 500。

像这样的

Id Cumulative_FileSizeMB
6 100
5 200
4 300
3 400
2 500
1 600

我只想选择 id 为 2 和 1 的记录,因为它们 >= 500。 目标是删除它们。

谢谢

【问题讨论】:

标签: mysql


【解决方案1】:

对于任何有同样问题的人。 我已经使用 Mysql 窗口函数达到了这个解决方案, 而且也不需要为累计总数声明一个变量

SELECT * from (
  SELECT 
  id, 
  FileSizeMB,
  SUM(FileSizeMB) OVER (ORDER BY id DESC) AS TotalFileSizeMB
  FROM table
) as t1
WHERE TotalFileSizeMB > 500

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-11
    • 2016-08-11
    • 2012-05-04
    • 1970-01-01
    • 2022-08-04
    • 1970-01-01
    • 2019-06-18
    • 1970-01-01
    相关资源
    最近更新 更多