В БД postgresql сделать выборку строк по нескольким столбцам

Есть след таблица:

uuid call_id_in call_id_out
1 111 null
2 666 444
3 222 111
4 777 888

На выходе требуется получить выборку строк, где call_id_in == call_id_out и новый инкрементируемый столбец channel_id - начинается с 1.

channel_id call_id_in call_id_out
1 111 222
SELECT 
    call_id_in, call_id_out 
FROM 
    call 
WHERE 
    call_id_in  IN (SELECT call_id_in FROM call  GROUP BY call_id_in)
    AND call_id_out IN (SELECT call_id_out  FROM call)

ORDER by call_id_in; 

Ответы (1 шт):

Автор решения: AlexanderSt

Вот так:

select ROW_NUMBER() over() as channel_id, 
    t1.call_id_in as call_id_in, 
    t2.call_id_in as call_id_out
from test1 t1, test1 t2
where t1.call_id_in = t2.call_id_out

И еще - не стоит называть таблицы служебными словами SQL

→ Ссылка