Tabelas dinâmicas dinâmicas no SQL Server

Tabelas dinâmicas dinâmicas no SQL Server

Pivot Table Example
cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


Neste artigo, explicarei como podemos criar uma tabela dinâmica dinâmica no SQL Server. As tabelas dinâmicas são uma informação resumida gerada a partir de um grande conjunto de dados subjacente. Geralmente é usado para relatar dimensões específicas dos vastos conjuntos de dados. Essencialmente, o usuário pode converter linhas em colunas. Isso oferece aos usuários a capacidade de transpor colunas de uma tabela do SQL Server facilmente e criar relatórios conforme os requisitos.

Algumas tabelas dinâmicas também são criadas para ajudar na análise de dados, principalmente para fatiar e picar com os dados e, afinal, gerar consultas analíticas. Se você vir a figura abaixo, terá uma ideia de como uma tabela dinâmica é criada a partir de uma tabela.

Exemplo de tabela dinâmica

Figura 1 – Exemplo de tabela dinâmica

Se você vir a figura acima, poderá ver que existem duas tabelas. A tabela à esquerda é a tabela real que contém os registros originais. A tabela à direita é uma tabela dinâmica gerada pela conversão das linhas da tabela original em colunas. Basicamente, uma tabela dinâmica conterá três áreas específicas, principalmente – linhas, colunas e valores. Na ilustração acima, as linhas são obtidas do Aluna coluna, as colunas são obtidas do Sujeito, e os valores são criados agregando o Marcas coluna.

Criando uma amostra de dados

Agora que temos alguma idéia de como funciona uma tabela dinâmica, vamos em frente e tentar nossas mãos. Você pode executar o script abaixo para criar dados de amostra e tentaremos implementar a ilustração acima aqui.

Vamos tentar selecionar os dados da tabela que acabamos de criar como abaixo.

Tabela dinâmica em SQL

Figura 2 – Conjunto de dados de amostra para tabela dinâmica

Aplicando o Operador PIVOT

Agora que temos nossos dados prontos, podemos prosseguir e criar a tabela dinâmica no SQL Server. Considerando a mesma ilustração acima, manteremos o Aluna coluna como linhas e pegue o Sujeito para as colunas. Além disso, outro ponto importante a ser observado aqui é que, ao escrever a consulta para a tabela dinâmica no SQL Server, precisamos fornecer uma lista distinta de valores de coluna que gostaríamos de visualizar na tabela dinâmica. Para esse script, podemos ver que temos três assuntos distintos disponíveis no conjunto de dados original; portanto, devemos fornecer esses três na lista enquanto cria a tabela dinâmica.

Aplicando o Operador PIVOT

Figura 3 – Aplicando o operador PIVOT

Como você pode ver na figura acima, a tabela dinâmica foi criada e convertemos as linhas para assuntos em colunas distintas.

Agora vamos tentar quebrar o script acima e entender como ele funciona. Se você vir o script, claramente, podemos dividi-lo em duas seções separadas – a primeira parte na qual selecionamos os dados da tabela original e, na segunda, definimos como a tabela dinâmica deve ser criada. No script, também mencionamos algumas palavras-chave específicas, como SOMA, PARA e NO, que devem ser usados ​​pelo PIVÔ somente operador. Vamos falar rapidamente sobre essas palavras-chave.

O operador SUM

No script, usei o operador SUM, que agregará essencialmente os valores do Marcas coluna para que possa ser usado na tabela dinâmica. É obrigatório que o operador dinâmico use uma coluna agregada que possa ser exibida para as seções de valores.

A palavra-chave FOR

A palavra-chave FOR é uma palavra-chave especial usada para a tabela dinâmica nos scripts do SQL Server. Esse operador informa ao operador de pivô em qual coluna precisamos aplicar a função de pivô. Basicamente, a coluna que deve ser convertida de linhas em colunas.

A palavra-chave IN

A palavra-chave IN, como já explicado acima, lista todos os valores distintos da coluna dinâmica que queremos adicionar à lista de colunas da tabela dinâmica. Neste exemplo, como temos apenas três valores distintos para o Sujeito Na coluna, fornecemos todos os três da lista para o NO palavra-chave

A única limitação nesse processo é que precisamos fornecer valores codificados para as colunas que precisamos selecionar na tabela dinâmica. Por exemplo, se um novo valor de assunto for inserido na tabela, a tabela dinâmica não poderá exibir o novo valor como uma coluna porque não está definido na lista para o NO operador. Vamos seguir em frente e inserir alguns registros na tabela para um assunto diferente – “História“.

Vamos executar a consulta para exibir a tabela dinâmica como fizemos anteriormente.

Executando a tabela PIVOT na consulta SQL

Figura 4 – Executando a consulta PIVOT

Como você pode ver, o novo assunto que acabamos de inserir na tabela não está disponível na tabela PIVOT. Isso ocorre porque não mencionamos a nova coluna na lista IN do operador PIVOT. Essa é uma das limitações da tabela PIVOT no SQL. Cada vez que queremos incluir uma nova coluna no PIVOT, precisamos modificar o código subjacente.

Outro cenário seria como se os requisitos mudassem e agora precisamos dinamizar os alunos em vez dos assuntos, mesmo nesse caso, precisaríamos modificar a consulta inteira. Para evitar isso, podemos criar algo dinâmico, no qual podemos configurar as colunas nas quais precisaríamos da tabela PIVOT. Vamos seguir em frente e entender como fazer um procedimento armazenado dinâmico que retornará uma tabela PIVOT no SQL.

Criando um procedimento armazenado dinâmico para tabelas PIVOT

Vamos encapsular todo o script PIVOT em um procedimento armazenado. Este procedimento armazenado terá as opções configuráveis ​​nas quais poderemos personalizar nossos requisitos apenas alterando alguns valores parametrizados. O script para a tabela dinâmica PIVOT no SQL está abaixo.

Como você pode ver no script acima, eu tenho duas variáveis ​​parametrizadas. Os detalhes desses dois parâmetros são os seguintes.

  • @ColumnToPivot – Este parâmetro aceita o nome da coluna na tabela base na qual a tabela dinâmica será aplicada. Para o cenário atual, será o “Sujeito“Porque gostaríamos de dinamizar a tabela base e exibir todos os assuntos nas colunas
  • @ListToPivot – Este parâmetro aceita a lista de valores que queremos visualizar como uma coluna na tabela dinâmica em SQL

Executando o procedimento armazenado dinâmico

Agora que nosso procedimento dinâmico de armazenamento está pronto, vamos em frente e executá-lo. Vamos replicar o primeiro cenário em que visualizamos todas as três disciplinas – Matemática, Ciências e Geografia na tabela dinâmica em SQL. Execute o script como abaixo.

Executando procedimento armazenado dinâmico

Figura 5 – Executando o procedimento armazenado dinâmico

Como você pode ver, agora fornecemos o nome da coluna “Sujeito”Como o primeiro parâmetro e a lista de colunas dinâmicas como a segunda coluna.

Suponha que agora também gostaríamos de incluir as marcas da coluna “História”Nesta tabela dinâmica, a única coisa que você deve fazer é adicionar o nome da coluna no segundo parâmetro e executar o procedimento armazenado.

Executando o procedimento armazenado dinâmico modificado

Figura 6 – Executando o procedimento dinâmico armazenado modificado

Tão fácil quanto isso, você pode adicionar quantas colunas você deseja adicionar à lista e a tabela dinâmica será exibida de acordo.

Vamos agora considerar outro cenário em que você precisa exibir o nome dos alunos nas colunas e os assuntos nas linhas – apenas um cenário vice-versa do que temos feito o tempo todo. A solução também é simples, como você poderia esperar. Apenas modificaremos os valores nos dois parâmetros, de modo que o primeiro parâmetro indique a coluna “Aluna”E o segundo parâmetro conterá a lista de alunos que você deseja, juntamente com as colunas. O procedimento armazenado é o seguinte.

Procedimento armazenado dinâmico

Figura 7 – Procedimento armazenado dinâmico

Como você pode ver na imagem acima, a tabela dinâmica no SQL é modificada dinamicamente sem precisar modificar o código subjacente.

Conclusão

Neste artigo, expliquei o que é uma tabela dinâmica no SQL e como criar uma. Também demonstrei um cenário simples no qual você pode implementar tabelas dinâmicas. Por fim, também mostrei como parametrizar o script da tabela dinâmica para que a estrutura da tabela de valores possa ser facilmente alterada sem a necessidade de modificar o código subjacente.

Aveek Das
Últimas mensagens de Aveek Das (ver todos)

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br
Leia Também  Onde eu estive? - BLOG DE TECNOLOGIA SQL