我有一个查询,该查询收集表的结果。
以下是查询:
SELECT id, number FROM from list
union select id, number from list
两个字段都是整数,并且id是双倍的,但数字是唯一的。
这是结果
id number
19564 234287
19564 234288
该怎么办,它看起来像这样:
id number
19564 234287;234288
答案 0 :(得分:2)
您要寻找string_agg()
吗?
select id, string_agg(distinct number, ';')
from list
group by id;
答案 1 :(得分:0)
我认为您需要一个交叉表查询
.. autoclass package.baz.Foo.original
:members:
结果:
/* TO CREATE CROSSTAB EXTENSION*/
CREATE EXTENSION IF NOT EXISTS tablefunc;
/* CROSSTAB QUERY */
SELECT * FROM crosstab (
'SELECT
id,
number
FROM list
ORDER BY id ASC, number ASC;')
AS ct(
id INT,
firstnumber NUMERIC,
secondnumber NUMERIC )
;
如果这对您有效,并且您希望将两个金额都放在一个列中,则可以尝试将它们串联。
希望有帮助。