Como alterar o formulário de tabela para converter linhas em colunas no MySQL

Caminho 2: Usando a função Pivot

Outra maneira de alterar a forma de uma tabela para converter linhas em colunas no MySQL é usar a função de pivô. A função de pivô é uma função que nos permite alterar a forma de uma tabela girando dados de linhas em colunas ou vice-versa. A função de pivô pode ser usada para transpor tabelas de forma fácil e rápida.

No entanto, o MySQL não tem uma função de pivô integrada que possamos usar diretamente. Portanto, precisamos usar certas extensões ou plugins para adicionar funções dinâmicas ao MySQL. Uma das extensões populares e frequentemente usadas é a Flexviews. Flexviews é uma extensão que fornece funções de atualização pivot, unpivot e incremental para MySQL. O Flexviews pode ser baixado e instalado em seu site oficial: https://github.com/greenlion/swanhart-tools/tree/master/flexviews

Para alterar a forma de uma tabela para converter linhas em colunas usando a função de pivô, precisamos fazer as seguintes etapas:

  • Instale e habilite a extensão Flexviews no MySQL. Siga as instruções de instalação fornecidas em seu site oficial.
  • Crie uma tabela temporária que contenha os dados que queremos moldar. Tabelas temporárias são tabelas que só existem durante uma sessão do MySQL e são excluídas automaticamente quando a sessão termina. As tabelas temporárias podem ser criadas usando o comando CREATE TEMPORARY TABLE. Por exemplo, podemos criar uma tabela temporária com o nome sales_temp contendo dados da tabela sales_table com o seguinte comando:
CREATE TEMPORARY TABLE sales_temp AS
SELECT * FROM sales_table;
  • Crie um modo de exibição que contenha a definição da função de pivô que queremos usar. Um modo de exibição é um objeto de banco de dados que armazena os resultados de uma consulta SQL como uma tabela virtual. Os modos de exibição podem ser criados usando o comando CREATE VIEW. Por exemplo, podemos criar uma exibição com o nome pivot_view que contém a definição da função dinâmica para alterar a forma da tabela sales_temp com o seguinte comando:
CREATE VIEW pivot_view AS
SELECT
FV$Pivot(
'sales_temp', -- o nome da tabela temporária que contém os dados
'category', -- o nome da coluna que será a nova linha
'month', -- o nome da coluna que se tornará a nova coluna
'sales', -- o nome da coluna que contém o valor a ser calculado
'SUM', -- o nome da função de agregação a ser usada
NULL -- nomes de coluna adicionais a serem incluídos na tabela de resultados (opcional)
) AS pivot_result; -- nome do alias para o resultado da função de pivô
  • Execute uma consulta SQL para chamar a função de pivô do modo de exibição que foi criado. As consultas SQL que podemos usar são as seguintes:
SELECT * FROM pivot_view;

Essa consulta irá gerar a tabela de resultados que desejamos, como mostrado acima.

Últimos artigos