Prueba los modelos de Gemini 1.5, los modelos multimodales más recientes de Vertex AI, y descubre lo que puedes crear con una ventana de contexto de hasta 2 millones de tokens.Prueba los modelos de Gemini 1.5, los modelos multimodales más recientes de Vertex AI, y descubre lo que puedes crear con una ventana de contexto de hasta 2 millones de tokens.
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Explicar un fragmento de código SQL.
Puedes consultar un modelo directamente y probar los resultados que se muestran cuando usas
valores de parámetros diferentes con la consola de Cloud o con una llamada directa a la
API de Vertex AI.
Explica la función de CROSS APPLY en el siguiente código:
SELECT customer.CustomerId, customer.CustomerName, ord.*
FROM customers customer
CROSS APPLY
(
SELECT SUM(order.quantity) as TotalQuantity
FROM orders order
WHERE order.CustomerId = customer.CustomerId
) ord;
Respuesta
La función CROSS APPLY en este código SQL actúa como una subconsulta correlacionada que aplica los resultados de la subconsulta a cada fila en la tabla customers. Aquí tenemos el siguiente desglose:
Consulta externa: La consulta principal selecciona CustomerId y CustomerName de la tabla customers, con un alias customer.
CROSS APPLY: Esta palabra clave presenta la subconsulta correlacionada. Indica a la base de datos que ejecute la subconsulta para cada fila de la tabla customers.
Subconsulta: La subconsulta calcula el TotalQuantity para cada cliente de la siguiente manera:
Selecciona la suma de quantity de la tabla orders, con alias de order.
Filtrado de la tabla orders según el CustomerId de la fila actual en la tabla customers.
Resultado:CROSS APPLY muestra una sola fila para cada cliente, que contiene el CustomerId, el CustomerName y el TotalQuantity calculado.
En esencia, CROSS APPLY te permite generar dinámicamente una columna nueva (TotalQuantity) para cada cliente según los resultados de la subconsulta, uniendo de forma efectiva la tabla customers con los datos agregados de los pedidos.
Ejemplo:
Supongamos que tienes los siguientes datos:
Clientes:
CustomerId
CustomerName
1
Juan Pérez
2
Juana Sánchez
Pedidos:
OrderId
CustomerId
Cantidad
1
1
5
2
1
3
3
2
2
La consulta mostraría el siguiente resultado:
CustomerId
CustomerName
TotalQuantity
1
Juan Pérez
8
2
Juana Sánchez
2
Nota:
CROSS APPLY es similar a OUTER APPLY, pero OUTER APPLY muestra una fila incluso si la subconsulta no muestra ningún resultado.
En este ejemplo específico, podrías lograr el mismo resultado mediante una JOIN con una cláusula GROUP BY. Sin embargo, CROSS APPLY puede ser más flexible y eficiente en ciertas situaciones, en especial cuando se trata de subconsultas complejas.