PostgreSQL:如何将多行的值放在不同的列中,并将所有值合并成一行?

PostgreSQL : How do I take multiple rows with values in different columns and combine into one row with all the values on one line?

这是我目前拥有的table。 我想将所有内容合并为一个 event_code 并将所有内容放在一行中。我检查了堆栈和 google 并得到了不同的答案,但似乎无法解决我的问题。

我想要的是

**event_code : fs_rev : hs_rev :  pp_rev :   mp_rev : gp_rev :  in_rev : broker**

LAK180918  :  619500  :   0    :  7000   :    0     :   5000  :   8500  :   17500

我似乎无法通过将所有列合并到一行下找到如何执行此操作的答案。谁能建议我应该做什么?

您可以使用最大或最小函数。我假设事件中的每一列只有一个有效值。

select event_code, max(fs_rev),max(hs_rev),max(pp_rev),max(mp_rev)
,max(gp_rev),max(in_rev),max(broker)
from table
group by event_code