es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , , , ,

Answer

  1. Avatar for 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:

    SELECT lot, 
           table, 
           table_no, 
           head_no, 
           ...
    FROM (
      SELECT lot,
             table1,
             table2,
             table3,
             table4,
             ...
             table28,
             head_no,
             ...
      FROM original_data
    ) UNPIVOT (
      table FOR table_no IN (table1, table2, table3, table4, ..., table28)
    )
    

    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 columna table con el número de tabla correspondiente table_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., y head_no. Si tu tabla tiene nombres de columnas diferentes, deberás ajustar la consulta en consecuencia.

Comments are closed.