Prova i modelli Gemini 1.5, i nostri più recenti modelli multimodali di Vertex AI, e scopri cosa puoi creare con una finestra di contesto dei token da 1 milione.Prova i modelli Gemini 1.5, i nostri più recenti modelli multimodali di Vertex AI, e scopri cosa puoi creare con una finestra di contesto dei token da 1 milione.
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Spiega uno snippet di codice SQL.
Puoi eseguire query direttamente su un modello e testare i risultati restituiti quando utilizzi valori parametro diversi con la console Cloud o chiamando direttamente l'API Vertex AI.
Spiega la funzione di CROSS APPLY nel codice seguente:
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;
Risposta
La funzione CROSS APPLY in questo codice SQL agisce come una sottoquery correlata che applica i risultati della sottoquery a ciascuna riga della tabella customers. Di seguito i dettagli:
Query esterna:la query principale seleziona CustomerId e CustomerName dalla tabella customers, con alias customer.
CROSS APPLY: questa parola chiave introduce la sottoquery correlata. Indica al database di eseguire la sottoquery per ogni riga nella tabella customers.
Sottoquery: la sottoquery calcola TotalQuantity per ogni cliente:
Seleziona la somma di quantity dalla tabella orders, con alias order.
Applicazione di filtri alla tabella orders in base al valore CustomerId dalla riga corrente nella tabella customers.
Risultato:CROSS APPLY restituisce una singola riga per ogni cliente, contenente CustomerId, CustomerName e il valore TotalQuantity calcolato.
In sostanza, CROSS APPLY consente di generare dinamicamente una nuova colonna (TotalQuantity) per ogni cliente in base ai risultati della sottoquery, unendo di fatto la tabella customers ai dati aggregati dell'ordine.
Esempio:
Supponiamo che tu abbia i seguenti dati:
Clienti:
CustomerId
CustomerName
1
Mario Rossi
2
Sara Bianchi
Ordini:
OrderId
CustomerId
Quantità
1
1
5
2
1
3
3
2
2
La query restituirebbe il seguente risultato:
CustomerId
CustomerName
TotalQuantity
1
Mario Rossi
8
2
Sara Bianchi
2
Nota:
CROSS APPLY è simile a OUTER APPLY, ma OUTER APPLY restituisce una riga anche se la sottoquery non restituisce alcun risultato.
In questo esempio specifico, potresti ottenere lo stesso risultato utilizzando JOIN con una clausola GROUP BY. Tuttavia, CROSS APPLY può essere più flessibile ed efficiente in determinati scenari, soprattutto in caso di sottoquery complesse.