根据类似的配对值对行进行分组

时间:2018-03-11 04:55:19

标签: sql postgresql

如果我的表格的数据结构如下:

a,b
1,2
2,1
3,1

我想要做的是根据2个值a和b将这3行分为2行,如果组合在一行中共同存放到1行中,那么我可以进行计数查询。我希望获得类似于以下结果的集合:

a,b,count
1,2,2
3,1,1

1 个答案:

答案 0 :(得分:7)

您可以使用greatest and least以一致的顺序获取列对:

select count(*)
from things
group by greatest(a, b), least(a, b)

这将为您提供您正在寻找的2