2
我有一个自定义的聚合函数,它将项目与分隔符连接起来。 如何调用此函数以确保结果是排序列表。按排序顺序的SQL调用聚合函数
像sum()这样的聚合函数将会得到相同的结果,无论这些行被提交给它的顺序如何。
我不能轻松地对聚合函数本身中的项进行排序,因为排序顺序取决于不同的字段。
例如:
product|size_id | size_string
--------------------------------
prod1 |10 | x-small
prod1 |20 | small
prod1 |30 | medium
prod1 |40 | large
prod1 |50 | x-large
我想查询返回:
PROD1,提供: X-小,小,中,大,X-大
iee (size_id)
SELECT product,concat_agg(size_string) GROUP BY product;
将返回所需的数据,但不按排序顺序。
目前我正在使用函数按正确的顺序遍历大小并将它们添加到结果中。我怀疑可能有SQL方法让子查询产生所需的结果。必须有其他集合函数不可交换。
我不知道GROUP_CONCAT有ORDER BY感谢这个 – 2010-02-04 03:29:29
!其实我使用的是postgres,它没有GROUP_CONCAT,但有一个“数组”功能,可以以类似的方式使用。感谢您让我走上正轨。 顺便说一句,应该是“ORDER BY size_id” – Loopo 2010-02-04 03:49:30