[英]MySQL Select records exceeding the cumulative total
鉴于我有下表
ID | 文件大小MB |
---|---|
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 窗口函数达到了这个解决方案,并且也不需要为累计总数声明一个变量
SELECT * from (
SELECT
id,
FileSizeMB,
SUM(FileSizeMB) OVER (ORDER BY id DESC) AS TotalFileSizeMB
FROM table
) as t1
WHERE TotalFileSizeMB > 500
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.