sql >> Base de Datos >  >> RDS >> Mysql

Transformación de fila a columna en MySQL

Esto se llama una tabla dinámica. Es un poco incómodo producir:

SELECT ID, 
 MAX(CASE Type WHEN 202 THEN Degignation END) AS `202`
 MAX(CASE Type WHEN 234 THEN Degignation END) AS `234`
 MAX(CASE Type WHEN 239 THEN Degignation END) AS `239`
 Email
FROM mytable
GROUP BY ID, Email

Tenga en cuenta que debe conocer todos los distintos Type valores antes de escribir la consulta. SQL no permite que un conjunto de resultados agregue más columnas dinámicamente a medida que descubre valores de datos en la tabla. Las columnas deben corregirse en el momento de preparación de la consulta.