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.

Cómo transponer manteniendo una condición en Redshift

Tengo la siguiente tabla

type  label          value
A     work_location  home
A     work_location  company
A     id             1
B     work_location  home
B     id             2

Me gustaría transformarlos manteniendo la columna label y transponiendo label=id.
Mi resultado deseado es el siguiente

type  work_location  id
A     home           1
A     company        1
B     home           2

Intenté agrupar y unir, pero no funcionó bien.
¿Hay alguna forma de lograr esto?

Gracias

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, se puede lograr el resultado deseado utilizando la función PIVOT en SQL. Aquí tienes una consulta de ejemplo:

    SELECT
      tipo,
      MAX(CASE WHEN etiqueta='work_location' THEN valor END) AS ubicación_laboral,
      MAX(CASE WHEN etiqueta='id' THEN valor END) AS id
    FROM tu_tabla
    GROUP BY tipo;
    

    Esta consulta agrupará la tabla por la columna tipo y luego utilizará la función PIVOT para trasponer los valores de ubicación_laboral e id en columnas separadas. La función MAX se utiliza para agregar los valores de cada columna. Esta consulta debería darte el resultado deseado:

    tipo  ubicación_laboral  id
    A     home               1
    A     company            1
    B     home               2 
    

Comments are closed.