簡體   English   中英

MySQL選擇LIMIT通過列的SUM

[英]MySQL selection LIMIT by the SUM of the column

有關SQL查詢的幫助。

表:

id |

1 | 15

2 | 15

3 | 10

4 | 20

5 | 25

6 | 20

7 | 15

我需要根據以下條件進行選擇-SUM(費率)的總和32

我需要一個結論:

id |

1 | 15

2 | 15

3 | 10

也就是說,由於記錄輸出上的累積量32是不必要的。

對不起我的英語不好。

請注意,在這種情況下,您所謂的id並不是真正的ID。 它是一個行號。 ID不是用於排序,它們是用於唯一標識行。 這就是為什么在此示例中將id更改為nr的原因。

在此解決方案中,我假設nr對於此表是唯一的。 不幸的是,MySQL中不提供用於生成行號的函數ROW_NUMBER()。

首先,我們有一個查詢,用於計算每個row_nr的增量和:

SELECT SUM(rate) FROM T WHERE nr <= t1.nr

然后我們找到最低的行號,其增量總和大於或等於32:

SELECT MIN(nr) FROM
(SELECT nr FROM T t1
WHERE (SELECT SUM(rate) FROM T WHERE nr <= t1.nr) >= 32
) t2

最后,我們選擇行號小於或等於該數字的所有行。

SELECT * FROM T
WHERE nr <=
(SELECT MIN(nr) FROM
(SELECT nr FROM T t1
WHERE (SELECT SUM(rate) FROM T WHERE nr <= t1.nr) >= 32
) t2);

http://sqlfiddle.com/#!2/9b60a/14

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM