【发布时间】:2023-03-14 11:51:01
【问题描述】:
我有一张桌子
id index value
1 1 2
2 1 3
3 2 6
4 3 8
我可以这样做:
select sum(value) from table group by index
但我想要的是每一行可以去多个组,伪代码
select sum(value) from table group by >= index
基本上索引是 1,2,3,我希望它把它们分成 3 个单独的组。
- 索引大于/等于 1 的值的总和
- 索引大于/等于 2 的值的总和
- 索引大于/等于 3 的值的总和
这必须是一个通用函数,所以我实际上不知道索引级别,因为它在这里是硬编码的。
这是示例输出:
indexLevelBiggerEquals sumValue
1 19 -- sum of all rows that are >= 1
2 14 -- sum of all rows that are >= 2
3 8 -- sum of all rows that are >= 3
【问题讨论】:
-
sum(index >= 1 then value else 0 end) ...
-
你能添加一个实际输出应该是什么样子的例子吗?您希望所有这些都放在不同的列中吗?
-
@a_horse_with_no_name 添加示例输出
-
那么 Marth 的答案正是您想要的。
标签: sql postgresql group-by