我在PostgreSQL中有一個由2列,第一個ID和第二個ID組成的表。其中的每個條目都意味着第一個ID和第二個ID之間存在關聯,並且可以保證第一個ID始終大於第二個ID。在PostgreSQL中創建最佳圖形關係
我的目標是處理該表,以便它可以檢測網絡(多個ID相互關聯),並更改表中該網絡的每個關係,以便第一個ID是網絡中的大ID,而第二個ID始終是網絡中最小的ID。
例子:
D->C , C->B , B->A , F->E , H->G
將變爲:
D->A , C->A , B->A , F->E , H->G
又如:
D->C , D->B , D->A
將變爲:
D->A , C->A , B->A
如何做到這一點使用SQL或寶stgres過程語言?
編輯:我使用的PostgreSQL版本是9.4。該表由id1(整數)和id2(整數)兩列組成,它們都是主鍵。
至於如何得出結論,A是在該組第二實施例的最小(A,B,C)中,我使用這個查詢,以確定最小的ID2
SELECT id1, MIN(id2) FROM table GROUP BY id1
在第二個例子中:你如何得出結論A是集合(A,B,C)中最小的?請始終提供您的Postgres版本,最好是表格定義。 –