sql >> Databasteknik >  >> RDS >> Mysql

Hur omvandlar man vertikal data till horisontell data med SQL?

Oavsett vilken databas du använder kallas konceptet för vad du försöker uppnå "pivottabell".

Här är ett exempel för mysql:http://en.wikibooks.org/wiki/MySQL/Pivot_table

Vissa databaser har inbyggda funktioner för det, se länkarna nedan.

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

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

Du kan alltid skapa en pivot för hand. Välj bara alla sammanställningar i en resultatuppsättning och välj sedan från den resultatuppsättningen. Observera att i ditt fall kan du lägga in alla namn i en kolumn med hjälp av concat (jag tror att det är group_concat i mysql), eftersom du inte kan veta hur många namn som är relaterade till ett a rel_id.

pseudo-select för ditt fall (jag vet inte mysql):

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


  1. Installera Oracle Database 12c-programvaran på Windows

  2. MySQL:Välj Random Entry, men vikt mot vissa poster

  3. Rails-utveckling - Kan inte ansluta till MySQL-server på 'localhost' (10061)

  4. BESTÄLL AV med inre fråga, vilket ger ORA-00907 saknad höger parentes