【发布时间】:2018-03-06 02:30:38
【问题描述】:
我有一个 select 语句,它返回如下的一些行:
a| b| c| d|
1, 2, 5, 1
1, 5, 7, 1
2, 5, 4, 1
2, 5, 2, 2
3, 5, 9, 1
我需要做的是,如果后续行中的 col a 和 col b 匹配,它们代表相同的对象,并且需要为行添加 c 并作为单行返回。如果下一行不匹配,则需要返回。我不确定我是否需要 d 列,它只是从不同的选择中生成的。
查询结果如下所示
a| b| c| d
1, 2, 5, 1
1, 5, 7, 1
2, 5, 6, 1 // the combination of rows 3 & 4
3, 5, 9, 1
对不起,我想得太像程序员了。如果有人能给我一个开始的地方,我将非常感激。
【问题讨论】:
-
编辑您的问题并显示结果集。你的解释很难理解。同时标记您正在使用的数据库。
-
也 后续行 是模糊的。您需要指定哪一列指定行顺序。
-
顺序真的重要吗?例如,如果 a=2, b=5 出现在结果集中的任何其他位置,您是否也希望添加它的 'c' 值?如果是这样,只需
select a, b, sum(c) from XXX group by a, b? -
@JeffBreadner 听起来像是对我的回答
-
@all 我需要重新考虑这个问题。我有一个生成列 d = 1 的行的选择和另一个生成 d = 2 行的选择。我使用联合将它们放在一起,我认为必须有更好的方法。很抱歉浪费您的时间。
标签: sql postgresql select join