我在 sql server 选择查询中遇到问题。我有下表。
ID-----Name----Quantity
1-------a-----------10
2-------b-----------30
3-------c-----------20
4-------d-----------15
5-------e-----------10
6-------f-----------30
7-------g-----------40
我想选择数量总和 < 值的那些记录。例如,如果我说选择那些数量总和 <65 的记录,那么输出将是
ID-----Name----Quantity
1-------a-----------10
2-------b-----------30
3-------c-----------20
因为如果我们包含下一条记录,那么 Quantity 的总和将为 75。
我想创建这个查询。请帮帮我。
最佳答案
您可以简单地使用一个相关的子查询来做到这一点,它对 MySQL 和 SQL Server 都可以很好地工作。但这不是最佳性能明智的解决方案:
SELECT
ID,
Name,
Quantity
FROM
(
SELECT
t1.ID,
t1.Name,
t1.Quantity,
(SELECT SUM(t2.Quantity)
FROM tablename AS t2
WHERE t2.ID <= t1.ID) AS Total
FROM Tablename AS t1
) AS t
WHERE Total < 65;
查看实际效果:
这会给你:
| ID | NAME | QUANTITY |
------------------------
| 1 | a | 10 |
| 2 | b | 30 |
| 3 | c | 20 |
关于sql - 选择查询中的列总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15942296/