Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да трансформирате вертикални данни в хоризонтални данни с SQL?

Независимо от базата данни, която използвате, концепцията за това, което се опитвате да постигнете, се нарича „Опорна таблица“.

Ето пример за mysql:http://en.wikibooks.org/wiki/MySQL/Pivot_table

Някои бази данни имат вградени функции за това, вижте връзките по-долу.

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

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

Винаги можете да създадете опорна точка на ръка. Просто изберете всички агрегирания в набор от резултати и след това изберете от този набор от резултати. Имайте предвид, че във вашия случай можете да поставите всички имена в една колона с помощта на concat (мисля, че това е group_concat в mysql), тъй като не можете да знаете колко имена са свързани с a rel_id.

псевдо-селекция за вашия случай (не знам 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. Пребройте честотата на всяка дума

  2. Как трябва да се съхраняват конвертираните от ip2long IP в MySQL?

  3. JSON_ARRAY_INSERT() – Вмъкване на стойности в JSON масив в MySQL

  4. Научете как да използвате няколко функции на MySQL и MariaDB – част 2

  5. BIT(1) или TINYINT за флагове в MySQL