En muchos casos, al usuario realmente le gustaría comparar el valor de la fila actual con el valor de la fila siguiente. para resolver este problema en la función de ventana LEAD() de SQL Server se utilizan a menudo.
LEAD() :
la función proporciona acceso a una fila en un desplazamiento físico establecido después de esta fila. La función LEAD() permitirá acceder a los datos de la fila siguiente, o la fila después de la fila siguiente, y continuar.
Sintaxis:
LEAD(return_value, offset [, default]) OVER ( [PARTITION BY partition_expression] ORDER BY sort_expression [ASC | DESC] )
Dónde :
- return_value:
el return_value de la fila subsiguiente admite un desplazamiento especificado. El return_value debe ser un valor. - desplazamiento:
el desplazamiento es el número de filas hacia adelante desde la fila actual desde donde se accede a los datos. El desplazamiento debe ser un número entero positivo. Si no define, el valor predeterminado de compensación es 1. - predeterminado:
la función LEAD() da como resultado el valor predeterminado si el desplazamiento está fuera del alcance de la partición. Si no se define, el valor predeterminado es NULL. - Cláusula PARTITION BY:
la cláusula PARTITION BY es opcional, difiere las filas del conjunto de resultados en particiones donde se usa la función LEAD(). - Cláusula ORDER BY:
la cláusula ORDER BY define el orden lógico de las filas en cada partición donde se usa la función LEAD().
Ejemplo-1:
supongamos que tenemos la siguiente tabla llamada «CompanySales»:
Select * from CompanySales;
Compañía | Año | Monto |
---|---|---|
ABC Ltda. | 2015 | 5000 |
XYZ Ltda. | 2015 | 4600 |
ABC Ltda. | 2017 | 5500 |
ABC Ltda. | 2016 | 5400 |
XYZ Ltda. | 2016 | 6500 |
ABC Ltda. | 2018 | 5400 |
XYZ Ltda. | 2017 | 4700 |
XYZ Ltda. | 2018 | 5400 |
Ejemplo-2:
SELECT TOP 10 [Company], [Year], [Amount], LEAD(Amount, 1) OVER ( PARTITION BY Company ORDER BY Year DESC ) AS Lead_amount FROM [CompanySales] ;
Producción –
Compañía | Año | Monto | Lead_amount |
---|---|---|---|
ABC Ltda. | 2018 | 5400 | 5500 |
ABC Ltda. | 2017 | 5500 | 5400 |
ABC Ltda. | 2016 | 5400 | 5000 |
ABC Ltda. | 2015 | 5000 | NULO |
XYZ Ltda. | 2018 | 5400 | 4700 |
XYZ Ltda. | 2017 | 4700 | 6500 |
XYZ Ltda. | 2016 | 6500 | 4600 |
XYZ Ltda. | 2015 | 4600 | NULO |
Publicación traducida automáticamente
Artículo escrito por khushboogoyal499 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA