【发布时间】:2017-05-20 13:55:20
【问题描述】:
我有一个表,其中有一个名为“容量”的数字列。我想选择它们的容量总和不大于 X 的第一行,就像这个查询一样
select * from table where sum(capacity )<X
但是我知道我不能在where 部分使用聚合函数。那么还有什么其他方法可以解决这个问题呢?
这是一些示例数据
id| capacity
1 | 12
2 | 13.5
3 | 15
我想按照id的顺序列出总和小于26的行,所以这样的查询
select * from table where sum(capacity )<26 order by id
它必须给我
id| capacity
1 | 12
2 | 13.5
因为 12+13.5
【问题讨论】:
-
帮助我们帮助您 - 请分享一些示例数据以及您希望为此示例获得的结果。
-
试试having子句
-
@Mureinik 我添加了一些示例数据。谢谢
-
我对你在这里想要什么有点困惑,但这是我最好的猜测:你想从表中按 id 列的顺序选择行,在你去和停止时总结容量在总和达到 26 之前选择?
-
@DavidBachmannJeppesen 是的,这正是我想要的,似乎 Mureinik 的答案就是解决方案
标签: sql postgresql select sum