“Conocimientos software>Software de base de datos

¿Qué es una tabla dinámica en SQL

2011/10/25
? En SQL , una tabla dinámica es un conjunto de datos que se transforma a partir de un conjunto de filas separadas a una colección de columnas . En las bases de datos relacionales, como Microsoft SQL Server, Oracle y MySQL, las tablas pivote se pueden utilizar para simplificar muchos datos con el fin de facilitar su lectura y comprensión . Para crear una tabla dinámica , un agregado se utiliza en contra de un conjunto de datos para distribuir múltiples filas de una sola columna en una sola fila con múltiples columnas . Esto esencialmente hace pivotar el conjunto de resultados de lado . Datos de ejemplo

Para entender mejor una tabla dinámica , un ejemplo de algunos datos de las ventas en esta lista. Copie el siguiente en Microsoft SQL Server Management Studio para probar los ejemplos.

Crear tabla # PivotTestTable ( CustName varchar ( 8 ) , ITEM_TYPE varchar ( 8 ) , Item_Amount numérico ( 6,2 ))
< p> insert into # PivotTestTableselect 'Jason ', ' PC' , 435.34unionselect 'Jason ', ' Software ' , 243.54unionselect 'Jason ', ' monitor' , 158.23unionselect ' Alison ', ' PC' , 345.89unionselect ' Alison ' , 'Software ' , 78.78unionselect ' Alison ', ' monitor' , 123.45
partir de datos anule la dinamización

Cuando la tabla temporal , # PivotTestTable , se realiza una consulta , el resultado es lo siguiente.

CustName ITEM_TYPE Item_Amount -------- -------------------- Alison Computer 345.89Alison monitor 123.45Alison Software 78.78Jason Computer 435.34Jason monitor 158.23Jason Software 243.54

Como puede ver , el conjunto de resultados muestra dos clientes, Alison y Jason , que han adquirido tres tipos diferentes de productos . Hay seis filas de datos para dos clientes . Si queremos ver los datos en una sola fila por cliente , usaríamos una tabla dinámica para lograr el resultado deseado.
Pivot por la función Pivot

Microsoft SQL Server tiene una función de pivote integrado en SQL Server. Aquí hay un ejemplo con los datos # PivotTestTable .

SELECTCustName como Total_Sales_By_Cust , ordenador , monitor, SoftwareFROM ( SELECTCustName , ITEM_TYPE , Item_AmountFROM # PivotTestTable ) aPIVOT ( suma ( Item_Amount ) PARA ITEM_TYPE in ( ordenador , monitor, software ) ) b

Esta consulta devolverá las seis filas originales pivota en dos filas con columnas separadas para cada tipo de artículo vendido . El conjunto de resultados generados a partir de esta consulta está aquí :

Total_Sales_By_Cust Software Monitor de ordenador ------------------- ----------- --------------- Alison 345.89 123.45 435.34 158.23 243.54 78.78Jason
Pivot por Case agregado Declaración

mediante el uso de un agregado función ( sUM , AVG , MIN , MAX ) en torno a una declaración de caso en una consulta SQL , que son capaces de lograr el mismo resultado que la función de pivote con menos trabajo .

SELECTCustName como Total_Sales_By_Cust , suma ( caso ITEM_TYPE cuando ' Computer' luego terminar Item_Amount ) como Informática , suma ( caso ITEM_TYPE cuando el entonces extremo Item_Amount ' monitor' ) como monitor, suma ( caso ITEM_TYPE al ' software ' y luego final Item_Amount ) como SoftwareFROM # PivotTestTableGROUP POR CustName

consulta devolverá exactamente el mismo conjunto de resultados del ejemplo anterior y es sólo una preferencia por el tipo de giro de usar.
error común con las tablas dinámicas

común error al crear una tabla dinámica es crear una unión detrás en la tabla de origen . Esto producirá resultados poco fiables y se debe evitar . Este ejemplo es estrictamente un ejemplo de lo que no se debe hacer . El resultado de este ejemplo será el mismo , pero la muestra no va a funcionar en todos los casos

SELECTp1.CustName , p1.Item_Amount como Computer, p2.Item_Amount como Monitor, p3.Item_Amount como SoftwareFROM p1INNER # PivotTestTable . ÚNETE p1.CustName p2on # PivotTestTable = p2.CustNameand p2.Item_Type = ' Monitor'INNER ÚNETE p1.CustName p3on # PivotTestTable = p3.CustNameand p3.Item_Type =' Software'WHERE p1.Item_Type = ' PC'


Software de base de datos
Cómo utilizar DTExec para ejecutar paquetes SSIS
Tutorial para escribir consultas SQL Express
File Maker Pro Tutoriales
Cómo utilizar Access resultados de la consulta para crear una tabla
Cómo imprimir etiquetas de Filemaker Pro 10
DB2 y Desigualdad Usos del Índice
Cómo hacer un seguimiento en el Programa Concurrente Personalizado Llamar a un SQL
Cómo controlar un Calendario 2007 Acceso
Conocimientos Informáticos © http://www.ordenador.online