miércoles, 25 de abril de 2012

Transponer el resultado de un Query en ORACLE

El día de hoy necesitaba básicamente convertir las columnas del resultado de un query en filas y las fila en columnas. Para esto pensé en varias soluciones pero ninguna de ellas era eficiente ya que cada vez crecía más el query haciendolo más lento...

Investigando por ahí vi que hay un operador en ORACLE que hace el trabajo, el operador es "PIVOT". Veamos como funciona:

Query inicial:

SELECT t.Nombre, COUNT(*) Cantidad
FROM TablaX t
GROUP BY t.Nombre

Esto nos da el resultado:

Nombre Cantidad
nombre1 5
nombre2 3


Query con PIVOT

SELECT * FROM
(
SELECT t.Nombre
FROM TablaX t
)
PIVOT (COUNT(*) FOR Nombre IN ('nombre1','nombre2') )

Esto nos dará el resultado:

nombre1nombre2
53

Esta es una opción bastante útil para estadísticas....

No hay comentarios.:

Publicar un comentario