Concatenar múltiples filas de resultados de una columna en una, agrupar por otra columna

Estoy teniendo una table como esta

Movie Actor A 1 A 2 A 3 B 4 

Quiero get el nombre de una película y todos los actores de esa película, y quiero que el resultado esté en un formatting como este:

 Movie ActorList A 1, 2, 3 

¿Cómo puedo hacerlo?

Simpler con la function agregada string_agg() (Postgres 9.0 o posterior):

 SELECT movie, string_agg(actor, ', ') AS actor_list FROM tbl GROUP BY 1; 

El 1 en GROUP BY 1 es una reference posicional y un atajo para la GROUP BY movie en este caso.

string_agg() espera el text tipo de datos como input. Otros types deben emitirse de forma explícita ( actor::text ), a less que se defina una text implícita al text , que es el caso para todos los demás types de caracteres ( varchar , character , "char" ) y algunos otros types.

Puede usar la function array_agg para eso:

 SELECT "Movie", array_to_string(array_agg(distinct "Actor"),',') AS Actor FROM Table1 GROUP BY "Movie"; 

Resultado:

 | MOVIE | ACTOR | ----------------- | A | 1,2,3 | | B | 4 | 

Ver este SQLFiddle

Para más, ver 9.18. Funciones agregadas

  select movie,GROUP_CONCAT(DISTINCT Actor) as ActorList from toyr_table group by movie 

puedes leerlo aquí http://www.w3resource.com/mysql/aggregate-functions-and-grouping/aggregate-functions-and-grouping-group_concat.php