sql >> Database >  >> RDS >> Mysql

Hoe verticale gegevens omzetten in horizontale gegevens met SQL?

Ongeacht de database die u gebruikt, wordt het concept van wat u probeert te bereiken "draaitabel" genoemd.

Hier is een voorbeeld voor mysql:http://en.wikibooks.org/wiki/MySQL/Pivot_table

Sommige databases hebben daarvoor ingebouwde functies, zie de links hieronder.

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

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

U kunt altijd een spil met de hand maken. Selecteer gewoon alle aggregaties in een resultatenset en selecteer vervolgens uit die resultatenset. Let op, in jouw geval kun je alle namen in één kolom plaatsen met concat (ik denk dat dat group_concat is in mysql), omdat je niet kunt weten hoeveel namen gerelateerd zijn aan een a rel_id.

pseudo-select voor jouw geval (ik ken mysql niet):

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


  1. Hoe kan ik een primaire sleutelbeperking wijzigen met behulp van de SQL-syntaxis?

  2. Londiste-replicatie met PostgreSQL 9.0

  3. Hoe installeer ik Oracle Instant Client op een Mac?

  4. Een lege database maken in Access 2016