2016-06-21 12 views
1

Ich habe eine Datenbank mit der folgenden TabelleAbfrage Postgres zur Unterscheidung über zwei Spalten

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

ich eine Abfrage benötigen, die alle unterschiedlichen Zeilen über Col1 und Col2 wählen werden (So AC == CA), aber ich brauche um die Summe zu zählen.

So könnte meine Rückkehr sein wie

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

Antwort

4

Dieses wie eine einfache Aggregationsanfrage mit einem Twist aussieht, weil die Reihenfolge ist nicht wichtig:

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

, die den Trick tat. Vielen Dank! Das ist viel einfacher als das, was ich gemacht habe - ich versuche zwei Auswahlen aus der gleichen Tabelle zu vereinen. – Derek

Verwandte Themen