Postgresql - 按列集分组

时间:2016-11-04 15:38:20

标签: postgresql group-by union

我在PostgreSQL中有一个关于group by的问题。

我目前正在查看下表:

---------------
t1     t2     n
---------------
a      b      1
b      a      2
c      a      4

并希望得到以下结果:

---------------
t1     t2     n
---------------
a      b      3
c      a      4

在单词中,我想按列t1和t2的组进行分组,并对该组中的列n求和。我尝试了不同的方法,比如与t2,t1的联合,但是,我无法摆脱"重复"进入" b a 3"在这种情况下。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

select least(t1, t2) as t1, greatest(t1, t2) as t2, sum(n)
from the_table
group by least(t1, t2), greatest(t1, t2)

然而,这会返回a,c,4而不是c,a,4,但由于您似乎希望a,cc,a一样,这不应该有所作为。