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