sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo transformar datos verticales en datos horizontales con SQL?

Independientemente de la base de datos que esté utilizando, el concepto de lo que está tratando de lograr se llama "Tabla dinámica".

Aquí hay un ejemplo para mysql:http://en.wikibooks.org/wiki/MySQL/Pivot_table

Algunas bases de datos tienen características integradas para eso, consulte los enlaces a continuación.

SQLServer:http://msdn.microsoft.com/de-de/library /ms177410.aspx

Oracle:http://www.dba-oracle.com/t_pivot_examples.htm

Siempre puedes crear un pivote a mano. Simplemente seleccione todas las agregaciones en un conjunto de resultados y luego seleccione de ese conjunto de resultados. Tenga en cuenta que, en su caso, puede poner todos los nombres en una columna usando concat (creo que es group_concat en mysql), ya que no puede saber cuántos nombres están relacionados con un rel_id.

pseudo-seleccione para su caso (no sé mysql):

select rel_id, group_concat(name) from item group by rel_id