查询postgres以区分两列

时间:2016-06-21 03:09:20

标签: sql postgresql

我有一个包含下表的数据库

Col1 | Col2 | Col3  |  
 A   | C     | data1
 A   | B     | data2
 B   | A     | data3
 A   | D     | data4
 C   | A     | data5

我需要一个查询,它将选择Col1和Col2中的所有不同行(So AC == CA),但我需要计算总数。

所以我的回归可能就像

Combo| Count
AC | 2
AB | 2
AD | 1

1 个答案:

答案 0 :(得分:4)

这看起来像一个带有扭曲的简单聚合查询,因为排序并不重要:

select least(col1, col2) || greatest(col1, col2), count(*) as cnt
from t
group by least(col1, col2) || greatest(col1, col2);