1. 程式人生 > >加入三行,如果一列中相同的值

加入三行,如果一列中相同的值

有一個Postgres資料庫和表有三個列。 資料結構在外部系統所以我不能修改它。

每個物件由三行(被列element_id——行相同的值在本專欄中代表同一個物件),例如:

key value element_id

status active 1
name exampleNameAAA 1
city exampleCityAAA 1
status inactive 2
name exampleNameBBB 2
city exampleCityBBB 2
status inactive 3
name exampleNameCCC 3
city exampleCityCCC 3
我想要所有的值描述每個物件(名稱、狀態和城市)。

對於這個示例的輸出應該是:

exampleNameAAA | active | exampleCityAAA
exampleNameBBB | inactive | exampleCityBBB
exampleNameCCC | inactive | exampleCityCCC
我知道如何加入兩行:

select a.value as name,
b.value as status
from the_table a
join the_table b
on a.element_id = b.element_id
and b."key" = 'status'
where a."key" = 'name';
怎麼可能加入三列?