Este documento presenta una sesión sobre funciones de ventana en SQL Server. Explica conceptos clave como la sentencia OVER, funciones de ranking como ROW_NUMBER y RANK, y funciones como LAST_VALUE, FIRST_VALUE, LAG y LEAD. El orador, Ahias Portillo, es un experto en SQL Server con más de 8 años de experiencia desarrollando soluciones de business intelligence.
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.
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.