除了这个问题如何将字符串场串在PostgreSQL的组通过“查询?
我怎么能以降序排列的员工?
我使用PostgreSQL 8.4不支持string_agg()
我试着用下面的,但它不支持:
array_to_string(array_agg(employee ORDER BY employee DESC), ',')
我会很感激的任何提示正确的答案。
除了这个问题如何将字符串场串在PostgreSQL的组通过“查询?
我怎么能以降序排列的员工?
我使用PostgreSQL 8.4不支持string_agg()
我试着用下面的,但它不支持:
array_to_string(array_agg(employee ORDER BY employee DESC), ',')
我会很感激的任何提示正确的答案。
在PostgreSQL 9.0或更高版本,你可以订购聚合函数中的元素 :
SELECT company_id, array_agg(employee ORDER BY company_id DESC)::text
FROM tbl
GROUP BY 1;
这不适用于PostgreSQL的8.4。 你要预购值进行汇总。 使用子查询或CTE用于此目的(8.4+):
SELECT company_id, array_agg(employee)::text
FROM (SELECT * FROM tbl ORDER BY company_id, employee DESC) x
GROUP BY 1;
我按订单company_id
此外,因为要加快聚集。
我也用的只是投放数组“绝招” text
( array_agg(employee)::text
),让您无需额外的空格一个基本的,逗号分隔的字符串,是最快的方法。
对于更复杂的格式,使用array_to_string(array_agg(employee), ', ')
就像你在你的问题。