Lenguaje tsql como aproximación a escenarios BI

50 %
50 %
Information about Lenguaje tsql como aproximación a escenarios BI
Technology

Published on February 24, 2014

Author: enriquecatala

Source: slideshare.net

Description

La sintaxis T-SQL está evolucionando con cada versión del motor relacional y cada vez es más habitual encontrar entre sus novedades, funciones analíticas para resolver problemas que típicamente requerían de infraestructura Multi-dimensional. En esta sesión vamos a dar un repaso a las funciones analíticas de las que disponemos en el motor relacional, para ver hasta qué punto nos pueden resultar útiles a la hora de mejorar procesos de negocio.

REL30012 Lenguaje TSQL como aproximación a escenarios BI 300 @enriquecatala Enrique Catala Bañuls ecatala@solidq.com @ @SQSummit13 MCT – Microsoft Active Professional – Technical Ranger

COMUNICADO EN CUMPLIMIENTO CON LA LEY 15/1999 DE PROTECCION DE DATOS DE CARÁCTER PERSONAL, PONEMOS EN TU CONOCIMIENTO QUE ESTA SESIÓN VA A SER GRABADA POR SOLIDQ Y QUE ESTA GRABACIÓN PODRÍA SER UTILIZADA COMO MATERIAL DE MARKETING Y HACERSE PUBLICA A TRAVÉS DE DIVERSOS MEDIOS, COMO POR EJEMPLO NUESTRA PAGINA WEB. TENIENDO EN CUENTA QUE TU IMAGEN PUEDE APARECER EN ESA GRABACIÓN, SI NO DESEAS APARECER, ROGAMOS NOS LO COMUNIQUES POR LOS MEDIOS QUE YA CONOCES. 2

Objetivos de la sesión 1. 2. 3. 4. Agrupación de conjuntos Funciones CUBE y ROLLUP Pivotado de datos Funciones analíticas en SQL Server 2012 3

DEMO GROUPING SETS 7

Objetivos de la sesión 1. 2. 3. 4. Agrupación de conjuntos Funciones CUBE y ROLLUP Pivotado de datos Funciones analíticas en SQL Server 2012 8

DEMO CUBE y ROLLUP 11

Objetivos de la sesión 1. 2. 3. 4. Agrupación de conjuntos Funciones CUBE y ROLLUP Pivotado de datos Funciones analíticas en SQL Server 2012 12

Pivotado de datos PIVOT Rotar datos desde filas a columnas Permite agregar múltiples valores a un único valor k1 k2 c1 1 A v1 1 B v2 1 C v3 2 A v4 2 B v5 2 C k1 v6 PIVOT A B C 1 v1 v2 v3 2 v4 v5 v6 13

Pivotado de datos Caso práctico para Open Schema Cada atributo almacenado en una fila aparte PIVOT perfecto para representar datos y manipular este escenario -- OpenSchema objectid attribute ----------- --------1 attr1 1 attr2 1 attr3 2 attr2 2 attr3 2 attr4 2 attr5 3 attr1 3 attr2 3 attr3 val ----------ABC 10 2008-01-01 12.300 X Y 14.700 XYZ 20 2009-01-01 PIVOT -- Desired Result: objectid attr1 attr2 ----------- ----- -----1 ABC 10 2 NULL 12.300 3 XYZ 20 attr3 ---------2008-01-01 X 2009-01-01 attr4 ----NULL Y NULL 14 attr5 -----NULL 13.700 NULL

Pivotar con GROUP BY -- OpenSchema objectid attribute ----------- --------1 attr1 1 attr2 1 attr3 2 attr2 2 attr3 2 attr4 2 attr5 3 attr1 3 attr2 3 attr3 val ----------ABC 10 2008-01-01 12.300 X Y 14.700 XYZ 20 2009-01-01 PIVOT -- Desired Result: objectid attr1 attr2 ----------- ----- -----1 ABC 10 2 NULL 12.300 3 XYZ 20 attr3 ---------2008-01-01 X 2009-01-01 attr4 ----NULL Y NULL attr5 -----NULL 13.700 NULL Agregación SELECT objectid, MAX(CASE WHEN attribute MAX(CASE WHEN attribute MAX(CASE WHEN attribute MAX(CASE WHEN attribute MAX(CASE WHEN attribute FROM dbo.OpenSchema GROUP BY objectid; = = = = = 'attr1' 'attr2' 'attr3' 'attr4' 'attr5' THEN THEN THEN THEN THEN val val val val val END) END) END) END) END) AS AS AS AS AS attr1, attr2, attr3, attr4, attr5 Distribución Agrupación (implícita) 15

Pivotar con operador PIVOT -- OpenSchema objectid attribute ----------- --------1 attr1 1 attr2 1 attr3 2 attr2 2 attr3 2 attr4 2 attr5 3 attr1 3 attr2 3 attr3 val ----------ABC 10 2008-01-01 12.300 X Y 14.700 XYZ 20 2009-01-01 PIVOT -- Desired Result: objectid attr1 attr2 ----------- ----- -----1 ABC 10 2 NULL 12.300 3 XYZ 20 Agrupación (implícita) SELECT objectid, attr1, attr2, attr3, attr4, attr5 FROM dbo.OpenSchema PIVOT(MAX(val) FOR attribute IN([attr1],[attr2],[attr3],[attr4],[attr5]) ) AS P; attr3 ---------2008-01-01 X 2009-01-01 attr4 ----NULL Y NULL attr5 -----NULL 13.700 NULL Agregación Distribución 16

Despivotado de datos UNPIVOT Rotar datos de columnas a filas k1 A B 1 v1 v2 v3 2 v4 v5 v6 k1 C UNPIVOT k2 c1 1 A v1 1 B v2 1 C v3 2 A v4 2 B v5 2 C v6 17

DEMO PIVOT y UNPIVOT 19

Objetivos de la sesión 1. 2. 3. 4. Agrupación de conjuntos Funciones CUBE y ROLLUP Pivotado de datos Funciones analíticas en SQL Server 2012 20

Window functions ¿Por qué las necesitamos? ¿Qué pasa si queremos obtener la suma y el valor de la columna? (group y detalle) id_table id_table Select id_table, value,[sum(value)] select sum(value) as from table1 as [sum(value)] sum(value) from table1 value value 1 1 1 2 2 1 2 2 2 3 3 1 3 3 2 3 3 3 sum(value) 1 1 2 1 2 3 1 SUM(value) 3 1 3 3 6 6 6 6 Msg 8120, Level 16, State 1, Line 1 Column 'table1.id_table' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. En un motor relacional es correcta esta aproximación? 21

Window functions ¿Por qué necesitamos window functions? La solución pasa por usar la cláusula OVER select id_table, value, sum(value) over(partition by id_table) from table1 id_table value 1 2 2 3 3 3 sum(value) 1 1 2 1 2 3 1 3 3 6 6 6 22

Window functions Evolución Cláusula OVER 23

Window functions Desglose Partitioning Ordering Slicing/framing 24

Window functions Conceptos clave Partition UNBOUNDED PRECEDING CURRENT ROW UNBOUNDED FOLLOWING 25

Window functions Conceptos clave: Particion Grupo de filas con “características” similares dentro de un conjunto actid tranid 1 2 2 3 3 3 1 1 2 1 2 3 26

Window functions Conceptos clave: Slicing/Framing RANGE/ROWS – ROWS | RANGE BETWEEN <B1> AND <B2> – ROWS | RANGE <B1> 27

Window functions Conceptos clave: Slicing/Framing B1 and B2 can be – – – – UNBOUNDED PRECEDING UNBOUNDED FOLLOWING CURRENT ROW FOR ROWS ONLY • <scalar expression> PRECEDING • <sclara expression> FOLLOWING Note – B1 <= B2 or NULL will be returned • Except in COUNT() that 0 will be returned 28

Window functions Conceptos clave Partition UNBOUNDED PRECEDING CURRENT ROW UNBOUNDED FOLLOWING 29

DEMO Funciones analíticas 30

Conclusiones Objetivos de la sesión • • • • Agrupación de conjuntos múltiple Conceptos CUBE y ROLLUP Pivotado de datos Funciones analíticas decentes en SQL Server 2012 31

¿Preguntas? 32

¡Gracias! @enriquecatala Enrique Catalá Mentor Siéntate a comer con nosotros o tómate un café y aclara tus dudas  33

Si quieres disfrutar de las mejores sesiones de nuestros mentores de España y Latino América, ésta es tu oportunidad. http://summit.solidq.com/madrid/ Síguenos: 34

Add a comment

Related presentations

Related pages

Lenguaje tsql como aproximación a escenarios BI - Technology

1. REL30012Lenguaje TSQL como aproximación a escenarios BI 300 @enriquecatalaEnrique Catala Bañuls ecatala@solidq.com@ @SQSummit13MCT – Microsoft ...
Read more

Introducción a T-SQL - Documents

Lenguaje tsql como aproximación a escenarios BI La sintaxis T-SQL está evolucionando con cada versión del motor relacional y cada vez es más habitual ...
Read more

Microsoft SQL Server 2005. Data Mining

Estos patrones y tendencias pueden reagruparse y definirse como ... cuanto a términos del lenguaje y ... Escenarios • Busque Partners de BI ...
Read more

Teoria y Definicion de SQL Server - YouTube

Teoria y Definicion de SQL Server ... Primera aproximación ... Introducción al lenguaje SQL ...
Read more

SQL Server 2014 | Microsoft

SQL Server, la base de la plataforma de datos de Microsoft, ofrece un rendimiento confiable gracias a las tecnologías in-memory y a que permite obtener ...
Read more

T-SQL | El Blog de Cheo Redondo

Posts about T-SQL written by ... Big Data, SQL Database, Microsoft Azure, SharePoint (BI) ... Así como lenguaje de consulta estructurado que maneja ...
Read more

Microsoft SQL Server - Wikipedia, la enciclopedia libre

... una implementación del estándar ANSI del lenguaje SQL, ... SQL se utiliza como extensión ... de BI (Inteligencia empresarial): SSIS (SQL ...
Read more

Blog sobre SQL Server, BI & Analytics

Blog sobre SQL Server, Power BI, Power ... pero como sabéis "del ... basada en los nuevos modelos de almacenamiento en memoria y en su lenguaje ...
Read more