Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak za pomocą SQL przekształcić dane pionowe w dane poziome?

Niezależnie od używanej bazy danych koncepcja tego, co próbujesz osiągnąć, nazywa się „Tabelą przestawną”.

Oto przykład dla mysql:http://en.wikibooks.org/wiki/MySQL/Pivot_table

Niektóre bazy danych mają w tym celu wbudowane funkcje, zobacz poniższe linki.

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

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

Zawsze możesz utworzyć oś obrotu ręcznie. Wystarczy wybrać wszystkie agregacje w zestawie wyników, a następnie wybrać z tego zestawu wyników. Zauważ, że w twoim przypadku możesz umieścić wszystkie nazwy w jednej kolumnie za pomocą concat (myślę, że to group_concat w mysql), ponieważ nie możesz wiedzieć, ile nazw jest powiązanych z rel_id.

pseudo-wybierz dla swojego przypadku (nie znam mysql):

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Łączenie się z mysql za pomocą php

  2. Przyznaj użytkownikowi uprawnienia do wyświetlania tylko widoku MySQL i niczego więcej

  3. Pomijaj komunikaty ostrzegawcze za pomocą mysql z poziomu Terminala, ale hasło napisane w skrypcie bash

  4. Dodaj klucz obcy do istniejącej tabeli

  5. Analizuj i porównuj dane za pomocą Coldfusion i MySQL