Tengo datos en formato girado. Se ve así:Giro de datos usando dos columnas
-----------------------------------------
| user_id | org | position | lang |
-----------------------------------------
| 1001 | USE | Boss | EN |
| 1001 | USD | Bossa | FI |
| 1002 | GWR | Dim | SV |
| 1003 | GGA | DCS | FI |
| 1003 | GCA | DDD | SV |
-----------------------------------------
Me gustaría tener los datos representados como:
-------------------------------------------------------------------------------------
| user_id | org_fi | position_fi | org_en | position_en | org_sv | position_sv |
-------------------------------------------------------------------------------------
| 1001 | USD | Bossa | USE | Boss | | |
| 1002 | | | | | GWR | Dim |
| 1003 | GGA | DCS | | | GCA | DDD |
-------------------------------------------------------------------------------------
creo que es necesaria una consulta de pivote con conexión por el comando.
Esto es lo que he intentado hacer:
SELECT user_id,
org,
position,
lang,
ROW_NUMBER() OVER (PARTITION BY lang, user_id ORDER BY ROWID) rn
FROM source
Sin embargo, no tengo idea de cómo seguir adelante.
¿Intentó utilizar el comando PIVOT? http://www.oracle.com/technetwork/articles/sql/11g-pivot-097235.html – tbone
sí, traté de usar el pivote. Pero el problema es que obtengo 1, 2, 3, 4, 5 ... en valor rn de mi consulta, así que estoy un poco atascado en este momento que cómo puedo usar el pivote en esta situación – Jaanna
ejemplo de pivote proporcionado – tbone