【发布时间】:2016-08-04 20:55:27
【问题描述】:
我有一个相对无聊的问题。我这么说是因为我觉得我只是在这里错过了显而易见的事情。我只是在做许多人以前做过和问过的事情,但是我以前使用的典型方法不起作用。希望只是我缺少一些简单的东西。
下面是我正在处理的更大查询的一部分,但我只是试图将只有一列数据不同的两行组合成一行,其中相似的列由分隔符分隔。使用 CONCAT 或 STRING_AGG 很简单,对吧?.. 对我不起作用,我不知道为什么。
SELECT array_to_string(array_agg(ls_number), ',') "ls_number",
--Also tried CONCAT(ls_number, ',') and string_agg(ls_number, ',')
--and they don't work
shipitem_shiphead_id,
shipitem_orderitem_id,
shiphead_number
FROM shipitem
LEFT JOIN invhist
ON (shipitem_invhist_id=invhist_id)
LEFT JOIN invdetail
ON (invhist_id=invdetail_invhist_id)
LEFT JOIN ls
ON (invdetail_ls_id=ls_id)
LEFT JOIN shiphead
ON (shiphead_id = shipitem_shiphead_id)
WHERE shiphead_number = '72211'
GROUP BY ls_number,
shiphead_number,
shipitem_shiphead_id,
shipitem_orderitem_id
上述查询运行时的结果:
您可以从上面的结果窗口中看到批号被分成 2 行。我需要它们在一行上,批号由分隔符“,”分隔。有人可以解释我在这里缺少什么吗?提前致谢!
【问题讨论】:
标签: postgresql concatenation aggregate