Я использую ROW_NUMBER
и пытаюсь сравнить arr
в рН 1 с arr
в рН 2,3,4 и т. Д., Чтобы увидетьесли они перекрываются.Я могу сделать это с помощью подзапроса / простого join .Есть ли способ, которым ИЗБЕГАЕТ соединение?
rn | id | job | arr |desired_result
---+----+-----+--------+---------
1 | 1 | 100 | {1,2} | {1,2}
2 | 1 | 101 | {2,3} | {1,2}
3 | 1 | 102 | {5,6,8}| {1,2}
4 | 1 | 103 | {2,7} | {1,2}
Я сделал dbfiddle
--USING JOIN
WITH a AS (
SELECT
ROW_NUMBER() OVER (PARTITION BY id ORDER by job) as rn
,*
FROM a_table
)
SELECT *
FROM (
SELECT id,arr
FROM a
WHERE rn = 1
) x
JOIN a
ON a.id=x.id