Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como transformar dados verticais em dados horizontais com SQL?


Independentemente do banco de dados que você está usando, o conceito do que você está tentando alcançar é chamado de "Tabela Dinâmica".

Aqui está um exemplo para mysql:http://en.wikibooks.org/wiki/MySQL/Pivot_table

Alguns bancos de dados possuem recursos embutidos para isso, veja os links abaixo.

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

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

Você sempre pode criar um pivô manualmente. Basta selecionar todas as agregações em um conjunto de resultados e, em seguida, selecionar a partir desse conjunto de resultados. Observe que, no seu caso, você pode colocar todos os nomes em uma coluna usando concat (acho que é group_concat no mysql), já que você não pode saber quantos nomes estão relacionados a um rel_id.

pseudo-select para o seu caso (não conheço o mysql):
select rel_id, group_concat(name) from item group by rel_id