No, this is not generally possible.
But you may get close, e.g. when you have an upper bound on the number of rows per group.
This is actually a FAQ; see also the thread in
http://www.dbforums.com/db2/1207101-getting-data-several-rows-onto-one.html#post4507450
Assuming an upper bound of 3, the following would give something close to what you want (where tbl is your table):
Code:
SELECT A.productID, A.description,
min(
A.reference ||
CASE WHEN B.reference IS NULL THEN ' ' ELSE
', ' || B.reference ||
CASE WHEN C.reference IS NULL THEN ' ' ELSE
', ' || C.reference END END)
AS references
FROM tbl AS A
LEFT OUTER JOIN tbl AS B
ON A.productID = B.productID
AND A.description = B.description
AND A.reference < B.reference
LEFT OUTER JOIN tbl AS C
ON A.productID = C.productID
AND A.description = C.description
AND B.reference < C.reference
GROUP BY A.productID, A.description