2016-11-04 4 views
1

У меня есть вопрос относительно группы в PostgreSQL.Postgresql - Группа по набору столбцов

В настоящее время я смотрел на следующей таблице:

--------------- 
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
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,c так же, как c,a это не должно иметь значение.

+0

Спасибо, что работает отлично. – bublitz

Смежные вопросы