SlideShare una empresa de Scribd logo
1 de 17
SOS de Alto de rendimiento con 
Window Functions 
Ahias Portillo 
Portillo.ahias@outlook.com
SQL Saturday Sponsors 
Gold Sponsors 
Silver Sponsors 
Bronze Sponsors
Expositor 
 Ing. Ahias Portillo, MVP, MCT, MCITP DBA, BI 
 Evangelista y conferencista latinoamericano de 
Sql Server, con mas de 8 años de experiencia en 
el desarrollo de soluciones BI. 
 portillo.ahias@Outlook.com.
Agenda 
 Conceptos 
 Sentencia Over 
 Ranking Functions 
 LAST_VALUE() /FIRST_VALUE() 
 LAG AND LEAD
Window Functions 
“Window Functions” también conocidas como “Set 
Function”, que significa funciones que se aplica a 
conjuntos de filas. 
Cuando se refiere a Window, se refiere al conjunto de filas 
sobre la que se realizará las operaciones. 
El concepto de Window Function surge con el estándar 
SQL:2003 y se especifica con más detalle en SQL:2008.
Window Functions 
(Fabiano Amorim, Window Functions in Sql Server)
¿Por qué son importantes? 
Son funcionalidades del motor que permite 
resolver problemas complejo de una forma sencilla 
y elegante, por lo general se utilizan en: 
 Paginación 
 Datos Duplicados. 
 Top de grupos. 
 Acumulados. 
 Pivot 
 Etc.
¿En qué consiste Sentencia OVER? 
Determina la segmentación y ordenamiento de un 
conjunto de datos, sobre la función que se 
utilizará. 
La sentencia OVER define una ventana o conjunto 
que se aplicará a cada valor, alguna de las 
funciones donde se aplican: 
 Ranking functions 
 Aggregate functions 
 Analytic functions 
 NEXT VALUE FOR function
Sentencia OVER 
OVER( [ <PARTITION BY clause> ] 
[ <ORDER BY clause> ] 
[ <ROW or RANGE clause> ] ) 
 Partition by: Divide los registros del query 
en base a las columnas definidas. 
 ORDER BY: Define el mecanismo de 
ordenamiento de los registros. 
 Row/Range: Permite limitar la cantidad de 
filas mediante un inicio y final.
Ranking Functions 
 ROW_NUMBER: Asigna un numero a cada fila. 
 RANK: Asigna una clasificación en base a un 
valor: 
 DENSE_RANK: A diferencia de la función 
RANK, si dos valores contiene la misma 
clasificación, el Segundo valor se asigna un 
clasificación inferior. 
 NTILE: Genera una clasificación de registros en 
base a un numero específicos de grupos.
DEMO
LAST_VALUE() /FIRST_VALUE() 
 Generalmente se utilizan estas funciones 
para obtener el primer y ultimo valor de un 
conjunto de datos.
DEMO
LAG AND LEAD 
 Permite comparar valores en base a la fila 
anterior o siguiente.
DEMO
16 | 
PREGUNTAS Y RESPUESTAS 
Portillo.ahias@outlook.com El Rincon de Sql Server 
Ahias Portillo 
@portilloAhias
Próxima sesión 
 SQL2014 -- ¿Cómo crear 
soluciones de bases de datos 
hibridas?.

Más contenido relacionado

Similar a Window Functions SQL

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
 
Mejoras del lenguaje T-SQL 2012 (parte 1) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 1) | SolidQ Summit 2012Mejoras del lenguaje T-SQL 2012 (parte 1) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 1) | SolidQ Summit 2012SolidQ
 
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012SolidQ
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddlyehisam
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddlyehisam
 
APLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALESAPLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALESDarwin Durand
 
Investigacion Uno
Investigacion UnoInvestigacion Uno
Investigacion UnoRoberto
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddlusamn
 
Dominando las funciones de ventana (window functions) en TSQL
Dominando las funciones de ventana (window functions) en TSQLDominando las funciones de ventana (window functions) en TSQL
Dominando las funciones de ventana (window functions) en TSQLSpanishPASSVC
 
11 Guía_Fundamentos de Base de Datos.docx
11 Guía_Fundamentos de Base de Datos.docx11 Guía_Fundamentos de Base de Datos.docx
11 Guía_Fundamentos de Base de Datos.docxLeydyVeronicaDelgado
 
Preguntas y respuestas Técnicas de SAP HANA
Preguntas y respuestas Técnicas  de SAP HANAPreguntas y respuestas Técnicas  de SAP HANA
Preguntas y respuestas Técnicas de SAP HANASergio Cannelli
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenadosbat1820
 
02 troubleshooting essentials sql server profiler - sql pass peru
02 troubleshooting essentials   sql server profiler - sql pass peru02 troubleshooting essentials   sql server profiler - sql pass peru
02 troubleshooting essentials sql server profiler - sql pass peruGuillermo Taylor
 
Sql Saturday Guatemala 2018-Mas rápido y Mas Furioso Windowing Functions & Co...
Sql Saturday Guatemala 2018-Mas rápido y Mas FuriosoWindowing Functions & Co...Sql Saturday Guatemala 2018-Mas rápido y Mas FuriosoWindowing Functions & Co...
Sql Saturday Guatemala 2018-Mas rápido y Mas Furioso Windowing Functions & Co...JOSE AHIAS LOPEZ PORTILLO
 

Similar a Window Functions SQL (20)

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
 
Amnel
AmnelAmnel
Amnel
 
Mejoras del lenguaje T-SQL 2012 (parte 1) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 1) | SolidQ Summit 2012Mejoras del lenguaje T-SQL 2012 (parte 1) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 1) | SolidQ Summit 2012
 
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
 
APLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALESAPLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALES
 
Investigacion Uno
Investigacion UnoInvestigacion Uno
Investigacion Uno
 
Sql ii
Sql iiSql ii
Sql ii
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
 
Dominando las funciones de ventana (window functions) en TSQL
Dominando las funciones de ventana (window functions) en TSQLDominando las funciones de ventana (window functions) en TSQL
Dominando las funciones de ventana (window functions) en TSQL
 
103305862 t-sql
103305862 t-sql103305862 t-sql
103305862 t-sql
 
t-sql
t-sqlt-sql
t-sql
 
11 Guía_Fundamentos de Base de Datos.docx
11 Guía_Fundamentos de Base de Datos.docx11 Guía_Fundamentos de Base de Datos.docx
11 Guía_Fundamentos de Base de Datos.docx
 
SISTEMAS
SISTEMASSISTEMAS
SISTEMAS
 
Ms SQL Server
Ms SQL ServerMs SQL Server
Ms SQL Server
 
Preguntas y respuestas Técnicas de SAP HANA
Preguntas y respuestas Técnicas  de SAP HANAPreguntas y respuestas Técnicas  de SAP HANA
Preguntas y respuestas Técnicas de SAP HANA
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
02 troubleshooting essentials sql server profiler - sql pass peru
02 troubleshooting essentials   sql server profiler - sql pass peru02 troubleshooting essentials   sql server profiler - sql pass peru
02 troubleshooting essentials sql server profiler - sql pass peru
 
Sql Saturday Guatemala 2018-Mas rápido y Mas Furioso Windowing Functions & Co...
Sql Saturday Guatemala 2018-Mas rápido y Mas FuriosoWindowing Functions & Co...Sql Saturday Guatemala 2018-Mas rápido y Mas FuriosoWindowing Functions & Co...
Sql Saturday Guatemala 2018-Mas rápido y Mas Furioso Windowing Functions & Co...
 

Más de JOSE AHIAS LOPEZ PORTILLO

Mi primer modelo de clasificación con Azure Machine Learning Studio
Mi primer modelo de clasificación con Azure Machine Learning StudioMi primer modelo de clasificación con Azure Machine Learning Studio
Mi primer modelo de clasificación con Azure Machine Learning StudioJOSE AHIAS LOPEZ PORTILLO
 
01 - DAX de principiante a experto con Power BI: Introducción a DAX
01 - DAX de principiante a experto con Power BI: Introducción a DAX01 - DAX de principiante a experto con Power BI: Introducción a DAX
01 - DAX de principiante a experto con Power BI: Introducción a DAXJOSE AHIAS LOPEZ PORTILLO
 
Instalación de Sql Server 2019 On-Premises.
Instalación de Sql Server 2019 On-Premises.Instalación de Sql Server 2019 On-Premises.
Instalación de Sql Server 2019 On-Premises.JOSE AHIAS LOPEZ PORTILLO
 
Mi primer modelo de clasificación utilizando regresión logística
Mi primer modelo de clasificación utilizando regresión logísticaMi primer modelo de clasificación utilizando regresión logística
Mi primer modelo de clasificación utilizando regresión logísticaJOSE AHIAS LOPEZ PORTILLO
 
70-761 Consultas de datos con Transact-SQL(SQL Server 2019)_Introducción
70-761 Consultas de datos con Transact-SQL(SQL Server 2019)_Introducción70-761 Consultas de datos con Transact-SQL(SQL Server 2019)_Introducción
70-761 Consultas de datos con Transact-SQL(SQL Server 2019)_IntroducciónJOSE AHIAS LOPEZ PORTILLO
 
Exam 70-761 Querying Data with Transact-SQL: Ambiente parte 01
Exam 70-761 Querying Data with Transact-SQL: Ambiente parte 01Exam 70-761 Querying Data with Transact-SQL: Ambiente parte 01
Exam 70-761 Querying Data with Transact-SQL: Ambiente parte 01JOSE AHIAS LOPEZ PORTILLO
 
Introducción a Ciencia de datos con Microsoft
Introducción a Ciencia de datos con MicrosoftIntroducción a Ciencia de datos con Microsoft
Introducción a Ciencia de datos con MicrosoftJOSE AHIAS LOPEZ PORTILLO
 
Transformación Digital – Ciencia de datos el siguiente nivel
Transformación Digital – Ciencia de datos el siguiente nivelTransformación Digital – Ciencia de datos el siguiente nivel
Transformación Digital – Ciencia de datos el siguiente nivelJOSE AHIAS LOPEZ PORTILLO
 
Sql Saturday Guatemala 2018 - Azure SQL Data Warehouse
Sql Saturday Guatemala 2018 - Azure SQL Data WarehouseSql Saturday Guatemala 2018 - Azure SQL Data Warehouse
Sql Saturday Guatemala 2018 - Azure SQL Data WarehouseJOSE AHIAS LOPEZ PORTILLO
 
Fast and Furious: Discovering Windowing Function
Fast and Furious: Discovering Windowing FunctionFast and Furious: Discovering Windowing Function
Fast and Furious: Discovering Windowing FunctionJOSE AHIAS LOPEZ PORTILLO
 
Sql Server - Troubleshooting De Bloqueos (Parte I)
Sql Server - Troubleshooting De Bloqueos (Parte I)Sql Server - Troubleshooting De Bloqueos (Parte I)
Sql Server - Troubleshooting De Bloqueos (Parte I)JOSE AHIAS LOPEZ PORTILLO
 
Sql Saturday CR - Introducción al Optimizador
Sql Saturday CR - Introducción al OptimizadorSql Saturday CR - Introducción al Optimizador
Sql Saturday CR - Introducción al OptimizadorJOSE AHIAS LOPEZ PORTILLO
 
Modelos de recuperación de desastre híbridos (On premise / Cloud)
Modelos de recuperación de desastre híbridos (On premise / Cloud)Modelos de recuperación de desastre híbridos (On premise / Cloud)
Modelos de recuperación de desastre híbridos (On premise / Cloud)JOSE AHIAS LOPEZ PORTILLO
 
Fundamentos Microsoft Sql Server (T-SQL) (Parte II) – Conceptos Básicos Model...
Fundamentos Microsoft Sql Server (T-SQL) (Parte II) – Conceptos Básicos Model...Fundamentos Microsoft Sql Server (T-SQL) (Parte II) – Conceptos Básicos Model...
Fundamentos Microsoft Sql Server (T-SQL) (Parte II) – Conceptos Básicos Model...JOSE AHIAS LOPEZ PORTILLO
 

Más de JOSE AHIAS LOPEZ PORTILLO (20)

Mi primer modelo de clasificación con Azure Machine Learning Studio
Mi primer modelo de clasificación con Azure Machine Learning StudioMi primer modelo de clasificación con Azure Machine Learning Studio
Mi primer modelo de clasificación con Azure Machine Learning Studio
 
Introducción Azure Synapse Analytics
Introducción Azure Synapse AnalyticsIntroducción Azure Synapse Analytics
Introducción Azure Synapse Analytics
 
002 - Introducción a DAX
002 - Introducción a DAX002 - Introducción a DAX
002 - Introducción a DAX
 
01 - DAX de principiante a experto con Power BI: Introducción a DAX
01 - DAX de principiante a experto con Power BI: Introducción a DAX01 - DAX de principiante a experto con Power BI: Introducción a DAX
01 - DAX de principiante a experto con Power BI: Introducción a DAX
 
Instalación de Sql Server 2019 On-Premises.
Instalación de Sql Server 2019 On-Premises.Instalación de Sql Server 2019 On-Premises.
Instalación de Sql Server 2019 On-Premises.
 
Mi primer modelo de clasificación utilizando regresión logística
Mi primer modelo de clasificación utilizando regresión logísticaMi primer modelo de clasificación utilizando regresión logística
Mi primer modelo de clasificación utilizando regresión logística
 
70-761 Consultas de datos con Transact-SQL(SQL Server 2019)_Introducción
70-761 Consultas de datos con Transact-SQL(SQL Server 2019)_Introducción70-761 Consultas de datos con Transact-SQL(SQL Server 2019)_Introducción
70-761 Consultas de datos con Transact-SQL(SQL Server 2019)_Introducción
 
Exam 70-761 Querying Data with Transact-SQL: Ambiente parte 01
Exam 70-761 Querying Data with Transact-SQL: Ambiente parte 01Exam 70-761 Querying Data with Transact-SQL: Ambiente parte 01
Exam 70-761 Querying Data with Transact-SQL: Ambiente parte 01
 
Introducción a Ciencia de datos con Microsoft
Introducción a Ciencia de datos con MicrosoftIntroducción a Ciencia de datos con Microsoft
Introducción a Ciencia de datos con Microsoft
 
Dax paso a paso con Power BI
Dax paso a paso con Power BIDax paso a paso con Power BI
Dax paso a paso con Power BI
 
Transformación Digital – Ciencia de datos el siguiente nivel
Transformación Digital – Ciencia de datos el siguiente nivelTransformación Digital – Ciencia de datos el siguiente nivel
Transformación Digital – Ciencia de datos el siguiente nivel
 
Sql Saturday Guatemala 2018 - Azure SQL Data Warehouse
Sql Saturday Guatemala 2018 - Azure SQL Data WarehouseSql Saturday Guatemala 2018 - Azure SQL Data Warehouse
Sql Saturday Guatemala 2018 - Azure SQL Data Warehouse
 
Fast and Furious: Discovering Windowing Function
Fast and Furious: Discovering Windowing FunctionFast and Furious: Discovering Windowing Function
Fast and Furious: Discovering Windowing Function
 
Sql Server - Troubleshooting De Bloqueos (Parte I)
Sql Server - Troubleshooting De Bloqueos (Parte I)Sql Server - Troubleshooting De Bloqueos (Parte I)
Sql Server - Troubleshooting De Bloqueos (Parte I)
 
Preguntando a sql server con DMV
Preguntando a sql server con DMVPreguntando a sql server con DMV
Preguntando a sql server con DMV
 
Sql Saturday CR - Introducción al Optimizador
Sql Saturday CR - Introducción al OptimizadorSql Saturday CR - Introducción al Optimizador
Sql Saturday CR - Introducción al Optimizador
 
Modelos de recuperación de desastre híbridos (On premise / Cloud)
Modelos de recuperación de desastre híbridos (On premise / Cloud)Modelos de recuperación de desastre híbridos (On premise / Cloud)
Modelos de recuperación de desastre híbridos (On premise / Cloud)
 
BI para todos
BI para todosBI para todos
BI para todos
 
Sql Saturday Costa Rica-SSAS Tabular Model
Sql Saturday Costa Rica-SSAS Tabular ModelSql Saturday Costa Rica-SSAS Tabular Model
Sql Saturday Costa Rica-SSAS Tabular Model
 
Fundamentos Microsoft Sql Server (T-SQL) (Parte II) – Conceptos Básicos Model...
Fundamentos Microsoft Sql Server (T-SQL) (Parte II) – Conceptos Básicos Model...Fundamentos Microsoft Sql Server (T-SQL) (Parte II) – Conceptos Básicos Model...
Fundamentos Microsoft Sql Server (T-SQL) (Parte II) – Conceptos Básicos Model...
 

Window Functions SQL

  • 1. SOS de Alto de rendimiento con Window Functions Ahias Portillo Portillo.ahias@outlook.com
  • 2. SQL Saturday Sponsors Gold Sponsors Silver Sponsors Bronze Sponsors
  • 3. Expositor  Ing. Ahias Portillo, MVP, MCT, MCITP DBA, BI  Evangelista y conferencista latinoamericano de Sql Server, con mas de 8 años de experiencia en el desarrollo de soluciones BI.  portillo.ahias@Outlook.com.
  • 4. Agenda  Conceptos  Sentencia Over  Ranking Functions  LAST_VALUE() /FIRST_VALUE()  LAG AND LEAD
  • 5. Window Functions “Window Functions” también conocidas como “Set Function”, que significa funciones que se aplica a conjuntos de filas. Cuando se refiere a Window, se refiere al conjunto de filas sobre la que se realizará las operaciones. El concepto de Window Function surge con el estándar SQL:2003 y se especifica con más detalle en SQL:2008.
  • 6. Window Functions (Fabiano Amorim, Window Functions in Sql Server)
  • 7. ¿Por qué son importantes? Son funcionalidades del motor que permite resolver problemas complejo de una forma sencilla y elegante, por lo general se utilizan en:  Paginación  Datos Duplicados.  Top de grupos.  Acumulados.  Pivot  Etc.
  • 8. ¿En qué consiste Sentencia OVER? Determina la segmentación y ordenamiento de un conjunto de datos, sobre la función que se utilizará. La sentencia OVER define una ventana o conjunto que se aplicará a cada valor, alguna de las funciones donde se aplican:  Ranking functions  Aggregate functions  Analytic functions  NEXT VALUE FOR function
  • 9. Sentencia OVER OVER( [ <PARTITION BY clause> ] [ <ORDER BY clause> ] [ <ROW or RANGE clause> ] )  Partition by: Divide los registros del query en base a las columnas definidas.  ORDER BY: Define el mecanismo de ordenamiento de los registros.  Row/Range: Permite limitar la cantidad de filas mediante un inicio y final.
  • 10. Ranking Functions  ROW_NUMBER: Asigna un numero a cada fila.  RANK: Asigna una clasificación en base a un valor:  DENSE_RANK: A diferencia de la función RANK, si dos valores contiene la misma clasificación, el Segundo valor se asigna un clasificación inferior.  NTILE: Genera una clasificación de registros en base a un numero específicos de grupos.
  • 11. DEMO
  • 12. LAST_VALUE() /FIRST_VALUE()  Generalmente se utilizan estas funciones para obtener el primer y ultimo valor de un conjunto de datos.
  • 13. DEMO
  • 14. LAG AND LEAD  Permite comparar valores en base a la fila anterior o siguiente.
  • 15. DEMO
  • 16. 16 | PREGUNTAS Y RESPUESTAS Portillo.ahias@outlook.com El Rincon de Sql Server Ahias Portillo @portilloAhias
  • 17. Próxima sesión  SQL2014 -- ¿Cómo crear soluciones de bases de datos hibridas?.