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

a1107849370發表於2018-11-23

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

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

key     value            element_id-----------------------------------status  active           1name    exampleNameAAA   1city    exampleCityAAA   1status  inactive         2name    exampleNameBBB   2city    exampleCityBBB   2status  inactive         3name    exampleNameCCC   3city    exampleCityCCC   3

我想要所有的值描述每個物件(名稱、狀態和城市)。

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

exampleNameAAA   | active    | exampleCityAAA
exampleNameBBB   | inactive  | exampleCityBBB
exampleNameCCC   | inactive  | exampleCityCCC

我知道如何加入兩行:

select a.value as name,
       b.value as statusfrom the_table a 
  join the_table b 
    on a.element_id = b.element_id 
   and b."key" = 'status'where a."key" = 'name';

怎麼可能加入三列?


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559515/viewspace-2221474/,如需轉載,請註明出處,否則將追究法律責任。

相關文章