With oracle 10g
SELECT CLASS_CATEGORY,
LTRIM(MAX(SYS_CONNECT_BY_PATH(CLASS_CODE,','))
KEEP (DENSE_RANK LAST ORDER BY curr),',') AS elements
FROM (SELECT CLASS_CATEGORY,
CLASS_CODE,
ROW_NUMBER() OVER (PARTITION BY CLASS_CATEGORY ORDER BY CLASS_CODE) AS curr,
ROW_NUMBER() OVER (PARTITION BY CLASS_CATEGORY ORDER BY CLASS_CODE) -1 AS prev
FROM PA_PROJECT_CLASSES_V
Where PROJECT_ID =189479 And CLASS_CATEGORY = 'Funding Agency')
GROUP BY CLASS_CATEGORY
CONNECT BY prev = PRIOR curr AND CLASS_CATEGORY = PRIOR CLASS_CATEGORY
START WITH curr = 1;
=======================================================
Another way:
SELECT CLASS_CATEGORY, COLLECT(CLASS_CODE) FROM PA_PROJECT_CLASSES_V
Where PROJECT_ID =189479 And CLASS_CATEGORY = 'Funding Agency' GROUP BY CLASS_CATEGORY
11g Release 2
SELECT question_id, wm_concat(element_id) as elements
FROM questions
GROUP BY question_id;
No comments:
Post a Comment