Is there an Oracle SQL query that aggregates multiple rows into one row? [duplicate]

(WARNINGWM_CONCAT is an unsupported function that was removed in version 12c. Unless you’re using a very old database, you should avoid this function. You should probably use LISTAGG instead.)


It depends on the version of Oracle you’re using. If it supports the wm_concat() function, then you can simply do something like this:

SELECT field1, wm_concat(field2) FROM YourTable GROUP BY field2;

wm_concat() basically works just like group_concat() in MySQL. It may not be documented, so fire up ye olde sqlplus and see if it’s there.

If it isn’t there, then you’ll want to implement something equivalent yourself. You can find some instructions on how to do this in the string aggregation page at oracle-base.com.

Leave a Comment