Función principal de SQL

Funcion Principal De Sql



La función SQL lead() le permite acceder a la siguiente fila desde la fila actual en un desplazamiento específico. En resumen, la función lead() le permite acceder a la siguiente fila de la actual. Al especificar el valor de compensación, puede acceder a las siguientes filas 1, 2, 3, etc. de la actual.

Es lo opuesto a la función lag() que le permite acceder a las filas anteriores.







Función SQL Lead()

La sintaxis de la función es la siguiente:



LEAD(valor_expresión, desplazamiento [, predeterminado])
ENCIMA (
[PARTICIÓN POR expresión_partición]
ORDENAR POR expresión_clasificación [ASC | DESC]
);

Los siguientes son los argumentos apoyados:



  1. expresión_valor – Especifica el valor de retorno de la fila anterior. La expresión debe evaluarse como un valor único.
  2.   compensar – Especifica a cuántas filas se accede desde la fila actual.
  3. por defecto – Establece el valor predeterminado si el desplazamiento está fuera del alcance de la partición. De forma predeterminada, el valor se establece en NULL.
  4. Partición por – Especifica cómo particionar los datos.
  5. Ordenar por – Establece el formato de orden de las filas de cada partición.

Configuración de datos de muestra

Antes de profundizar en el funcionamiento de la función lead(), comencemos configurando la tabla básica con fines de demostración.





CREAR TABLA productos (
product_id INT PRIMARY KEY AUTO_INCREMENT,
nombre_producto VARCHAR(255),
categoría VARCHAR(255),
precio DECIMAL(10, 2),
cantidad INT,
fecha_de_caducidad FECHA,
código de barras BIGINT
);

insertar
en
productos (nombre_producto,
categoría,
precio,
cantidad,
fecha de caducidad,
código de barras)
valores ('Gorro de Chef 25cm',
'panadería',
24.67,
57,
'2023-09-09',
2854509564204);

insertar
en
productos (nombre_producto,
categoría,
precio,
cantidad,
fecha de caducidad,
código de barras)
valores ('Huevos de codorniz - Enlatados',
'despensa',
17.99,
67,
'2023-09-29',
1708039594250);

insertar
en
productos (nombre_producto,
categoría,
precio,
cantidad,
fecha de caducidad,
código de barras)
valores ('Café - Capuccino con ponche de huevo',
'panadería',
92.53,
10,
'2023-09-22',
8704051853058);

insertar
en
productos (nombre_producto,
categoría,
precio,
cantidad,
fecha de caducidad,
código de barras)
valores ('Pera - Espinosa',
'panadería',
65.29,
48,
'2023-08-23',
5174927442238);

insertar
en
productos (nombre_producto,
categoría,
precio,
cantidad,
fecha de caducidad,
código de barras)
valores ('Pasta - Cabello de ángel',
'despensa',
48.38,
59,
'2023-08-05',
8008123704782);

insertar
en
productos (nombre_producto,
categoría,
precio,
cantidad,
fecha de caducidad,
código de barras)
valores ('Vino - Prosecco Valdobiaddene',
'producir',
44.18,
3,
'2023-03-13',
6470981735653);

insertar
en
productos (nombre_producto,
categoría,
precio,
cantidad,
fecha de caducidad,
código de barras)
valores ('Pastelería - Mini Surtido Francés',
'despensa',
36.73,
52,
'2023-05-29',
5963886298051);

insertar
en
productos (nombre_producto,
categoría,
precio,
cantidad,
fecha de caducidad,
código de barras)
valores ('Naranja - Enlatada, Mandarina',
'producir',
65.0,
1,
'2023-04-20',
6131761721332);

insertar
en
productos (nombre_producto,
categoría,
precio,
cantidad,
fecha de caducidad,
código de barras)
valores ('Cerdo - Paletilla',
'producir',
55.55,
73,
'2023-05-01',
9343592107125);

insertar
en
productos (nombre_producto,
categoría,
precio,
cantidad,
fecha de caducidad,
código de barras)

valores ('Dc Hikiage Hira Huba',
'producir',
56.29,
53,
'2023-04-14',
3354910667072);

Ejemplo 1:

En este caso tenemos acceso a la tabla “productos” que contiene la información del producto. Supongamos que queremos obtener el siguiente código de barras de la fila actual.

Podemos usar la función lead() de la siguiente manera:



Supongamos que tenemos una tabla que contiene información de un empleado de la siguiente manera:

seleccionar
nombre del producto,
precio,
plomo (código de barras) sobre (partición por categoría
ordenar por
precio asc) como next_item
de
productos p;

El código dado divide los datos según la categoría. Luego recupera el siguiente código de barras en la partición usando la función lead().

El resultado resultante es el siguiente:

Ejemplo 2:

Si no hay una fila siguiente en una columna específica (fuera de límite), la función establece el valor en NULL como se muestra en el ejemplo anterior.

Para establecer un valor predeterminado para cualquier acceso fuera de alcance, podemos hacer lo siguiente:

seleccionar
nombre del producto,
precio,
liderar (código de barras, 1, 'N/A') sobre (partición por categoría
ordenar por
precio asc) como next_item
de
productos p;

Establecemos el valor predeterminado en 'N/A'. Esto debería reemplazar cualquier valor fuera de límite como se muestra en el siguiente resultado:

NOTA : Establecer el desplazamiento en 1 es similar a no especificar ningún valor.

Ejemplo 3:

Supongamos que desea acceder a las dos filas siguientes desde la fila actual. Podemos hacerlo estableciendo el valor de compensación en 2.

A continuación se ilustra una consulta de ejemplo:

seleccionar
nombre del producto,
precio,
liderar (código de barras, 2, 'N/A') sobre (partición por categoría
ordenar por
precio asc) como next_item
de
productos p;

Esta consulta devuelve las dos filas siguientes en cada partición como se muestra a continuación:

¡Ahí tienes!

Conclusión

En este tutorial, aprendimos cómo trabajar con la función lead() para obtener el siguiente elemento de la fila actual.