Ir para conteúdo
  • 0

ETL - Estruturação de Base de Dados (Pivot/Unpivot)


raoliveira4
Ir para solução Solucionado por raoliveira4 ,

Pergunta

  • Alunos

Olá a todos!

Desde já, agradeço a todos!

Estou enfrentando um problema com uma base de dados e gostaria de contar com o insight de vocês.

Tenho uma base de dados com 193 colunas de avaliação de itens específicos, porém gostaria de estrutura-la em uma quantidade menor de colunas. Tentei algumas transformações na base de dados, porém ainda não cheguei em algo próximo do resultado esperado, conforme imagens abaixo.

Deixo o arquivo excel em anexo para melhor avaliação.

Extraí uma parte dos itens avaliados na base e originalmente ela encontra-se na seguinte estrutura:

1.thumb.PNG.efd9877bf04c90cd9dcd68c002bce097.PNG

 

O resultado esperado após a ETL é o seguinte:

2.thumb.PNG.97209943c59cc509f8445125bed1a12b.PNG

Pasta1.xlsx

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução
7 minutos atrás, Vitor Peralva disse:

Você tem que ver que no seu arquivo, uma coluna de Status, a primeira, por exemplo, não tem a palavra Status por exemplo e uma mesma classe tem várias avaliações.

Confirmar se foi erro na transcrição ou se realmente não tem Status antecedendo o nome da coluna.

Também não fica claro se você sempre terá somente uma linha ou um conjunto de linhas

De toda forma, acredito que você precisa criar uma tabela intermediária com o Status para depois mesclar de volta.

Da tabela de transformação você eliminaria a coluna de Status, que já estaria nesta tabela intermediária, faria uma coluna de índice, módulo por 3 e depois poderia usar colunas dinâmicas.

O ideal é você testar com as 193 linhas, porque tem que ter certeza que estabeleceu um padrão, como o fato de toda coluna de Status, que terá Conforme ou Não Conforme, é precedida por "STATUS".
Busque um padrão nos cabeçalhos e tudo se tornará mais fácil.

Olá Vitor, muito obrigado pela sua resposta!

Acabei solucionando o problema de forma semelhante ao que comentou.

Tive que dividir as bases de dados em 2 ou 3 menores a depender do grupo que estava sendo avaliado.

E a partir daí eu deixava uma base como 1º nível contendo uma "coluna chave" de Item, outra base de 2 nível eu pivotava as colunas de subitem e criava uma coluna condicional onde cada subitem teria a chave contida na base de nível 1 e a mesma lógica para o nível 3.

Depois foi o processo de Merge simples utilizando uma coluna de Index + Codigo da Atividade e as colunas de Item, Subitem etc...

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Você tem que ver que no seu arquivo, uma coluna de Status, a primeira, por exemplo, não tem a palavra Status por exemplo e uma mesma classe tem várias avaliações.

Confirmar se foi erro na transcrição ou se realmente não tem Status antecedendo o nome da coluna.

Também não fica claro se você sempre terá somente uma linha ou um conjunto de linhas

De toda forma, acredito que você precisa criar uma tabela intermediária com o Status para depois mesclar de volta.

Da tabela de transformação você eliminaria a coluna de Status, que já estaria nesta tabela intermediária, faria uma coluna de índice, módulo por 3 e depois poderia usar colunas dinâmicas.

O ideal é você testar com as 193 linhas, porque tem que ter certeza que estabeleceu um padrão, como o fato de toda coluna de Status, que terá Conforme ou Não Conforme, é precedida por "STATUS".
Busque um padrão nos cabeçalhos e tudo se tornará mais fácil.

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...