postgresql 如何链接来自2列的值对

ecbunoof  于 2023-06-22  发布在  PostgreSQL
关注(0)|答案(1)|浏览(123)

我有一个表[tt],有两列,其中有一组可以重复的值。列被命名为[a]和[B]:

[a] [b]
1   2
1   3
1   4
2   1
2   3
3   2
4   1
4   5
5   4
5   6

我知道如何只查询对:

SELECT t1.A, t1.B
    FROM tt AS t1
INNER JOIN tt AS t2
    ON t1.A = t2.B AND t1.B = t2.A

但是我如何通过添加一个新列[pair_id] f.e.将这些对链接在一起呢?就像这样:

[a] [b] [pair_id]
1   2   1
2   1   1
1   4   2
4   1   2
2   3   3
3   2   3
4   5   4
5   4   4
ui7jx7zq

ui7jx7zq1#

尝试按最小和最大函数排序的dense_rank函数。

select a, b,
  dense_rank() over (order by least(a, b), greatest(a, b)) pair_id
from tbl

Demo

相关问题