sql >> Databáze >  >> RDS >> Mysql

Jak transformovat vertikální data na horizontální data pomocí SQL?

Bez ohledu na databázi, kterou používáte, koncept toho, čeho se snažíte dosáhnout, se nazývá „kontingenční tabulka“.

Zde je příklad pro mysql:http://en.wikibooks.org/wiki/MySQL/Pivot_table

Některé databáze pro to mají vestavěné funkce, viz odkazy níže.

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

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

Vždy můžete vytvořit pivot ručně. Stačí vybrat všechny agregace v sadě výsledků a poté vybrat z této sady výsledků. Všimněte si, že ve vašem případě můžete všechna jména umístit do jednoho sloupce pomocí concat (myslím, že je to group_concat v mysql), protože nemůžete vědět, kolik jmen souvisí s a rel_id.

pseudo-select pro váš případ (neznám mysql):

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


  1. Replikace PostgreSQL pro zotavení po havárii

  2. Pochopení normalizace a duplikátů – Myslím, že ne – Přidání ID interpretů a titulů

  3. Vyberte více tabulek, když je jedna tabulka v MySQL prázdná

  4. Databáze Python a MySQL:Praktický úvod