POSTGRESQL 中同一行的两个结果
Posted
技术标签:
【中文标题】POSTGRESQL 中同一行的两个结果【英文标题】:TWO RESULTS in SAME ROW in POSTGRESQL 【发布时间】:2017-08-29 17:48:53 【问题描述】:select * from Table1
where Condition 1
union
select select * from Table1
where Condition 2
结果:
NAME AMOUNT TYPE
ABC -- Account
ABC 200 --
但我需要像
这样的一行结果NAME AMOUNT TYPE
ABC 200 ACCOUNT
在PG中怎么做?
【问题讨论】:
你想要的是JOIN
而不是UNION
【参考方案1】:
根据您的示例数据,这可能有效
SELECT name,
MAX(amount) amount,
MAX(type) type
FROM table1
WHERE condition 1
OR condition 2
GROUP BY name
【讨论】:
【参考方案2】:我已经通过以下方式实现了类似的目标:
select TABLE_1.DESCRIPTION_COLUMN,
(array(select TABLE_2.INFO_COLUMN from TABLE_2 where TABLE_1.ID = TABLE_2.ID_TABLE_1))[1],
(array(select TABLE_2.INFO_COLUMN from TABLE_2 where TABLE_1.ID = TABLE_2.ID_TABLE_1))[2]
from TABLE_1
WHERE TABLE_1 = 1
来源/帮助:
https://***.com/a/6402163/1856745
【讨论】:
以上是关于POSTGRESQL 中同一行的两个结果的主要内容,如果未能解决你的问题,请参考以下文章