Software  
 
Conhecimento computador >> Software >> Software de banco de dados >> 
O que é uma tabela dinâmica no SQL
? No SQL , uma tabela dinâmica é um conjunto de dados que é transformada a partir de uma coleção de linhas separadas para uma coleção de colunas . Em bancos de dados relacionais , como o Microsoft SQL Server, Oracle e MySQL, tabelas dinâmicas pode ser usado para simplificar dados extensos , a fim de torná-lo mais fácil de ler e entender. Para criar uma tabela dinâmica , um agregado é usado contra um conjunto de dados para distribuir várias linhas de uma única coluna em uma única linha com várias colunas. Isto essencialmente gira o conjunto de resultados para os lados. Dados de Amostra

para entender melhor uma tabela dinâmica , um exemplo de alguns dados de vendas está listado aqui. Copie o seguinte no Microsoft SQL Server Management Studio para experimentar os exemplos.

Criar tabela # PivotTestTable ( CustName varchar (8), ITEM_TYPE varchar (8), Item_Amount numérico (6,2 ) )

inserir # PivotTestTableselect ' Jason ', ' computador' , 435.34unionselect ' Jason ', ' Software ' , 243.54unionselect ' Jason ', ' monitor' , 158.23unionselect ' Alison ', ' computador' , 345.89unionselect " Alison " , 'Software ' , 78.78unionselect ' Alison ', ' monitor' , 123.45
Iniciando não dinâmica Dados

Quando a tabela temporária , # PivotTestTable , é consultado , o resultado é o seguinte .

CustName ITEM_TYPE Item_Amount -------- -------------------- Alison Computer 345.89Alison monitor 123.45Alison Software 78.78Jason computador 435.34Jason monitor 158.23Jason Software 243,54

Como você pode ver , o conjunto de resultados mostra dois clientes , Alison e Jason , que adquiriram três diferentes tipos de itens. Existem seis linhas de dados para dois clientes . Se quiséssemos ver os dados em uma única linha por cliente , poderíamos usar uma tabela dinâmica para atingir o resultado desejado.
Pivot por função PIVOT

Microsoft SQL Server tem uma função PIVOT construído em SQL Server. Aqui está um exemplo com os dados # PivotTestTable .

SELECTCustName como Total_Sales_By_Cust , Computador, Monitor, SoftwareFROM ( SELECTCustName , ITEM_TYPE , Item_AmountFROM # PivotTestTable ) aPIVOT (soma ( Item_Amount ) PARA ITEM_TYPE em ( computador, monitor, Software) ) b

Esta consulta retornará os seis linhas originais girou em duas linhas com colunas separadas para cada tipo de item vendido. O conjunto de resultados gerados a partir dessa consulta é aqui:

Monitor Software Total_Sales_By_Cust Computer ------------------- ----------- --------------- Alison 345,89 123,45 435,34 158,23 243,54 78.78Jason
Pivot por agregado Caso
Declaração

usando um agregado função ( sUM , AVG, MIN , MAX) em torno de uma exposição do caso em uma consulta SQL , que são capazes de alcançar o mesmo resultado que a função PIVOT com menos trabalho.

SELECTCustName como Total_Sales_By_Cust , sum (case ITEM_TYPE quando ' computador' depois Item_Amount final ), como computador , sum (case ITEM_TYPE quando 'Monitor' , em seguida, Item_Amount final ), como monitor, soma ( caso ITEM_TYPE quando 'Software ', então Item_Amount final ) como SoftwareFROM # PivotTestTableGROUP POR CustName

consulta retornará exatamente o mesmo conjunto do exemplo anterior resultado e é apenas uma preferência por qual tipo de pivô de usar.
Common Mistake com tabelas dinâmicas

comum erro para criar uma tabela dinâmica é a criação de uma junção de volta na tabela de origem . Isto irá produzir resultados pouco fiáveis ​​e deve ser evitada . Este exemplo é estritamente um exemplo do que não fazer. O resultado desta amostra será a mesma , no entanto esta amostra não irá funcionar em todos os casos

SELECTp1.CustName , p1.Item_Amount como Computador, p2.Item_Amount como Monitor, p3.Item_Amount como SoftwareFROM # PivotTestTable p1INNER . Cadastre- # PivotTestTable p2on p1.CustName = p2.CustNameand p2.Item_Type = ' Monitor'INNER Cadastre # PivotTestTable p3on p1.CustName = p3.CustNameand p3.Item_Type =' Software'WHERE p1.Item_Type = ' computador ' em < br >

Anterior :

Próximo : No
  Os artigos relacionados
·Como sincronizar dados entre dois bancos de dados Micro…
·Como inserir um campo com uma constante em uma consulta…
·Ferramentas de desenvolvimento de aplicativos de banco …
·Como usar um recurso de reversão de 
·Como saber Que SAP Lançamento está a executar 
·Como inserir Forward barra SQL no Oracle 
·Como traduzir Oracle SQL para WebFocus 
·Como criar um modelo de banco de dados Oracle 10g 
·Como fazer upload de um extrato bancário em um banco d…
·Como detectar SQL Agrupamento 
  Artigos em destaque
·Como Gire uma consulta no Oracle 
·Como copiar um cabeçalho no PostgreSQL 8.4 
·Como desativar o McAfee sem excluí-lo 
·Programas de banco de dados Endereço 
·Como alterar um nome de tabela em SQL 
·Como gravar SNES -Station para um DVD 
·Como restaurar o Backup ASR 
·Como criar Tambor Multis em Kontakt 
·Como Aplicar gráficos no Excel Vs . Como Aplicar gráf…
·Como gravar no Audacity Com Backing 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados