我已经看到与mysql类似的问题,但是我几乎找不到与sqllite有关的任何解决方案。
我的样品台
-----------------------------
ID | Product Name | Price
-----------------------------
1 A 2
2 B 2
3 C 1
4 D 3
5 E 2
Run Code Online (Sandbox Code Playgroud)
在这里,我需要获取行,直到价格列的总数按升序等于或小于5。
您可以使用Product ID和来进行运行总计,ORDER BY Product ID如下所示:
SELECT p1.ID, p1.ProductName, p1.Price,
(SELECT SUM(p2.Price) FROM Products p2 WHERE p1.ID >= p2.ID ORDER BY p2.ID ) as RunningTotal
FROM Products p1
WHERE RunningTotal <= 5
ORDER BY p1.ID
Run Code Online (Sandbox Code Playgroud)
参见小提琴演示
或使用下面的Price和ORDER BY Price类似:
SELECT p1.ID, p1.ProductName, p1.Price,
(SELECT SUM(p2.Price) FROM Products p2 WHERE p1.Price >= p2.Price ORDER BY Price )
as RunningTotal
FROM Products p1
WHERE RunningTotal <= 5
ORDER BY p1.Price;
Run Code Online (Sandbox Code Playgroud)
参见第二小提琴演示
| 归档时间: |
|
| 查看次数: |
596 次 |
| 最近记录: |