如何使用select合并postgres中的两行[重复]
Posted
技术标签:
【中文标题】如何使用select合并postgres中的两行[重复]【英文标题】:how to merge two rows in postgres using select [duplicate] 【发布时间】:2021-03-01 19:56:33 【问题描述】:我有一个表格,其中的行看起来像这样
Account | Currency | Amount |
---|---|---|
1 | USD | 5 |
1 | EUR | 10 |
2 | USD | 8 |
3 | EUR | 4 |
有没有办法做一个选择查询,所以它会返回类似的东西
Account | amount_usd | amount_eur |
---|---|---|
1 | 5 | 10 |
2 | 8 | |
3 | 4 |
usd 和 eur 是硬编码的,所以我不必从列中构建名称。
【问题讨论】:
这在这个问题中得到了很好的解释:***.com/questions/23060256/… 这能回答你的问题吗? Postgres - Transpose Rows to Columns 【参考方案1】:您可以使用 Postgres 中使用 filter
的条件聚合:
select account,
sum(amount) filter (where currency = 'USD') as usd_amount,
sum(amount) filter (where currency = 'EUR') as eur_amount
from t
group by account;
【讨论】:
【参考方案2】:你可以在条件下使用 sum() :
select account, sum(case when currency='USD' then amount end) Amount_USD,
sum(case when currency='EUR' then amount end) Amount_EUR
from myTable
Group by account
【讨论】:
以上是关于如何使用select合并postgres中的两行[重复]的主要内容,如果未能解决你的问题,请参考以下文章