Reestructuración de datos utilizando PIVOT y UNPIVOT en SQL
Tengo una tabla con datos similares a los datos originales.
Usando los datos originales, quiero reestructurarlos a los datos modificados como en la tabla utilizando PIVOT o UNPIVOT en SQL.
Datos originales:
lote | tabla1 | tabla2 | tabla3 | tabla4 | … | tabla28 | cabecera | … |
---|---|---|---|---|---|---|---|---|
a | xxa | xxb | xxc | xxd | … | xxf | 1 | … |
b | xxg | xxe | xxi | xxp | … | xxx | 1 | … |
c | xxk | xxm | xxr | xxt | … | xxu | 4 | … |
… | … | … | … | … | … | … | … | … |
Resultado después de la modificación:
lote | tabla | Número de tabla | número de cabecera | … |
---|---|---|---|---|
a | xxa | tabla1 | 1 | … |
a | xxb | tabla2 | 1 | … |
a | xxc | tabla3 | 1 | … |
a | xxd | tabla4 | 1 | … |
a | … | …. | … | … |
b | xxg | tabla1 | 1 | … |
b | xxe | tabla2 | 1 | … |
b | xxi | tabla3 | 1 | … |
b | xxp | tabla4 | 1 | … |
b | … | … | … | … |
c | xxk | tabla1 | 4 | … |
… | … | … | … | …|… |
Gracias de antemano.
davy.ai
Para reestructurar los datos originales en el formato modificado mostrado en la tabla, podemos utilizar las funciones PIVOT o UNPIVOT en SQL.
Suponiendo que queremos pivotar la tabla para obtener el formato de datos modificado, podemos utilizar la siguiente consulta:
Esta consulta primero seleccionará todas las columnas de la tabla de datos originales y luego despivotará la columna
table1
,table2
,table3
, etc., en una nueva columnatable
con el número de tabla correspondientetable_no
. La tabla resultante tendrá el formato mostrado en la tabla de datos modificada.Ten en cuenta que la consulta asume que la tabla de datos originales tiene columnas llamadas
lot
,table1
,table2
, etc., yhead_no
. Si tu tabla tiene nombres de columnas diferentes, deberás ajustar la consulta en consecuencia.