SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
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

Mais conteúdo relacionado

Semelhante a Lenguaje tsql como aproximación a escenarios BI

Curso de Analista de Negocios con SAP Crystal Reports XI V Jul2015
Curso de Analista de Negocios con SAP Crystal Reports XI V Jul2015Curso de Analista de Negocios con SAP Crystal Reports XI V Jul2015
Curso de Analista de Negocios con SAP Crystal Reports XI V Jul2015LPI ONG
 
Base de Datos Grupo Los Informaticos
Base de Datos Grupo Los InformaticosBase de Datos Grupo Los Informaticos
Base de Datos Grupo Los InformaticosPedroJunior178
 
Sql server2008 Revision
Sql server2008 RevisionSql server2008 Revision
Sql server2008 Revisionayudamejebuz
 
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...Luis775803
 
Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014JOSE AHIAS LOPEZ PORTILLO
 
Machine Learning Para Definir Clusters De Usuarios Y Acciones Concretas. Medi...
Machine Learning Para Definir Clusters De Usuarios Y Acciones Concretas. Medi...Machine Learning Para Definir Clusters De Usuarios Y Acciones Concretas. Medi...
Machine Learning Para Definir Clusters De Usuarios Y Acciones Concretas. Medi...Flat 101
 
Monitorización proactiva con performance data collectors
Monitorización proactiva con performance data collectorsMonitorización proactiva con performance data collectors
Monitorización proactiva con performance data collectorsEnrique Catala Bañuls
 
Row level security en sql azure y en on premise
Row level security en sql azure y en on premiseRow level security en sql azure y en on premise
Row level security en sql azure y en on premiseSpanishPASSVC
 
Taller de Investigacion en Business Intelligence con MSSQL Server 2008R2
Taller de Investigacion en Business Intelligence con MSSQL Server 2008R2Taller de Investigacion en Business Intelligence con MSSQL Server 2008R2
Taller de Investigacion en Business Intelligence con MSSQL Server 2008R2LPI ONG
 
Manual-SQL1.pdf
Manual-SQL1.pdfManual-SQL1.pdf
Manual-SQL1.pdfJenny29068
 
Manual sql1
Manual sql1Manual sql1
Manual sql1drianda
 
F004 p006-gfpi guia de aprendizaje 1-fundamentosde sql
F004 p006-gfpi guia de aprendizaje 1-fundamentosde sqlF004 p006-gfpi guia de aprendizaje 1-fundamentosde sql
F004 p006-gfpi guia de aprendizaje 1-fundamentosde sqlMiguel Amgo
 
Curso de Analista de Negocios con SAP Crystal Report 2013 (Fundamentos)
Curso de Analista de Negocios con SAP Crystal Report 2013 (Fundamentos)Curso de Analista de Negocios con SAP Crystal Report 2013 (Fundamentos)
Curso de Analista de Negocios con SAP Crystal Report 2013 (Fundamentos)Pedro Chavez
 

Semelhante a Lenguaje tsql como aproximación a escenarios BI (20)

Curso de Analista de Negocios con SAP Crystal Reports XI V Jul2015
Curso de Analista de Negocios con SAP Crystal Reports XI V Jul2015Curso de Analista de Negocios con SAP Crystal Reports XI V Jul2015
Curso de Analista de Negocios con SAP Crystal Reports XI V Jul2015
 
Transact+Sql+2005
Transact+Sql+2005Transact+Sql+2005
Transact+Sql+2005
 
Machine Learning en SQL Server
Machine Learning en SQL ServerMachine Learning en SQL Server
Machine Learning en SQL Server
 
S ti ci_v1_201302
S ti ci_v1_201302S ti ci_v1_201302
S ti ci_v1_201302
 
Base de Datos Grupo Los Informaticos
Base de Datos Grupo Los InformaticosBase de Datos Grupo Los Informaticos
Base de Datos Grupo Los Informaticos
 
BI para todos
BI para todosBI para todos
BI para todos
 
Sql server2008 Revision
Sql server2008 RevisionSql server2008 Revision
Sql server2008 Revision
 
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
 
Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014
 
Machine Learning Para Definir Clusters De Usuarios Y Acciones Concretas. Medi...
Machine Learning Para Definir Clusters De Usuarios Y Acciones Concretas. Medi...Machine Learning Para Definir Clusters De Usuarios Y Acciones Concretas. Medi...
Machine Learning Para Definir Clusters De Usuarios Y Acciones Concretas. Medi...
 
Monitorización proactiva con performance data collectors
Monitorización proactiva con performance data collectorsMonitorización proactiva con performance data collectors
Monitorización proactiva con performance data collectors
 
Caracteristicas de dbms_SQL SERVER 2008
Caracteristicas de dbms_SQL SERVER 2008Caracteristicas de dbms_SQL SERVER 2008
Caracteristicas de dbms_SQL SERVER 2008
 
Row level security en sql azure y en on premise
Row level security en sql azure y en on premiseRow level security en sql azure y en on premise
Row level security en sql azure y en on premise
 
Taller de Investigacion en Business Intelligence con MSSQL Server 2008R2
Taller de Investigacion en Business Intelligence con MSSQL Server 2008R2Taller de Investigacion en Business Intelligence con MSSQL Server 2008R2
Taller de Investigacion en Business Intelligence con MSSQL Server 2008R2
 
Exposicion_Terabyte.pptx
Exposicion_Terabyte.pptxExposicion_Terabyte.pptx
Exposicion_Terabyte.pptx
 
Manual-SQL1.pdf
Manual-SQL1.pdfManual-SQL1.pdf
Manual-SQL1.pdf
 
Manual sql1(1)
Manual sql1(1)Manual sql1(1)
Manual sql1(1)
 
Manual sql1
Manual sql1Manual sql1
Manual sql1
 
F004 p006-gfpi guia de aprendizaje 1-fundamentosde sql
F004 p006-gfpi guia de aprendizaje 1-fundamentosde sqlF004 p006-gfpi guia de aprendizaje 1-fundamentosde sql
F004 p006-gfpi guia de aprendizaje 1-fundamentosde sql
 
Curso de Analista de Negocios con SAP Crystal Report 2013 (Fundamentos)
Curso de Analista de Negocios con SAP Crystal Report 2013 (Fundamentos)Curso de Analista de Negocios con SAP Crystal Report 2013 (Fundamentos)
Curso de Analista de Negocios con SAP Crystal Report 2013 (Fundamentos)
 

Mais de Enrique Catala Bañuls

Sql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql serverSql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql serverEnrique Catala Bañuls
 
Capas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL ServerCapas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL ServerEnrique Catala Bañuls
 
Aplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorAplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorEnrique Catala Bañuls
 
Técnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql serverTécnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql serverEnrique Catala Bañuls
 
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...Enrique Catala Bañuls
 
Planes de ejecución 3.0 sql 2016 y v next
Planes de ejecución 3.0 sql 2016 y v nextPlanes de ejecución 3.0 sql 2016 y v next
Planes de ejecución 3.0 sql 2016 y v nextEnrique Catala Bañuls
 
Aplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorAplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorEnrique Catala Bañuls
 
Sql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladoresSql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladoresEnrique Catala Bañuls
 
Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)Enrique Catala Bañuls
 
Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Enrique Catala Bañuls
 
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)Enrique Catala Bañuls
 
Como leer planes de ejecución - edición 2015
Como leer planes de ejecución - edición 2015Como leer planes de ejecución - edición 2015
Como leer planes de ejecución - edición 2015Enrique Catala Bañuls
 

Mais de Enrique Catala Bañuls (20)

Sql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql serverSql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql server
 
Capas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL ServerCapas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL Server
 
Paralelismo en SQL Server
Paralelismo en SQL ServerParalelismo en SQL Server
Paralelismo en SQL Server
 
Aplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorAplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidor
 
Técnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql serverTécnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql server
 
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
 
Planes de ejecución 3.0 sql 2016 y v next
Planes de ejecución 3.0 sql 2016 y v nextPlanes de ejecución 3.0 sql 2016 y v next
Planes de ejecución 3.0 sql 2016 y v next
 
Paralelismo en sql server
Paralelismo en sql serverParalelismo en sql server
Paralelismo en sql server
 
Aplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorAplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidor
 
Query store
Query storeQuery store
Query store
 
Planes de ejecucion 2016
Planes de ejecucion 2016Planes de ejecucion 2016
Planes de ejecucion 2016
 
Sql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladoresSql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladores
 
Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)
 
Query store
Query storeQuery store
Query store
 
Planes de ejecucion 2
Planes de ejecucion 2Planes de ejecucion 2
Planes de ejecucion 2
 
Planes de ejecucion 1
Planes de ejecucion 1Planes de ejecucion 1
Planes de ejecucion 1
 
Migración a sql server 2016
Migración a sql server 2016Migración a sql server 2016
Migración a sql server 2016
 
Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)
 
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
 
Como leer planes de ejecución - edición 2015
Como leer planes de ejecución - edición 2015Como leer planes de ejecución - edición 2015
Como leer planes de ejecución - edición 2015
 

Último

Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024anasofiarodriguezcru
 
TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888ElianaValencia28
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskTrabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskbydaniela5
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Trabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalTrabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalEmanuelCastro64
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxCarolina Bujaico
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfTENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfJoseAlejandroPerezBa
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nóminacuellosameidy
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdftecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdflauralizcano0319
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaYeimys Ch
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 

Último (20)

Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024
 
TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskTrabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Trabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalTrabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamental
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptx
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfTENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nómina
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdftecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 

Lenguaje tsql como aproximación a escenarios BI

  • 1. 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
  • 2. 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
  • 3. 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
  • 5. 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
  • 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 12
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 20. 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
  • 21. Window functions Conceptos clave: Slicing/Framing RANGE/ROWS – ROWS | RANGE BETWEEN <B1> AND <B2> – ROWS | RANGE <B1> 27
  • 22. 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
  • 25. 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
  • 27. ¡Gracias! @enriquecatala Enrique Catalá Mentor Siéntate a comer con nosotros o tómate un café y aclara tus dudas  33
  • 28. 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