Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Expliquer un extrait de code SQL.
Vous pouvez interroger un modèle directement et tester les résultats renvoyés lors de l'utilisation de différentes valeurs de paramètre en utilisant la console Cloud ou en appelant directement l'API Vertex AI.
Expliquez la fonction de CROSS APPLY dans le code ci-dessous :
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;
Réponse
La fonction CROSS APPLY de ce code SQL agit comme une sous-requête corrélée qui applique les résultats de la sous-requête à chaque ligne de la table customers. Ses subdivisions sont les suivantes :
Requête externe : la requête principale sélectionne CustomerId et CustomerName dans la table customers, avec l'alias customer.
CROSS APPLY : ce mot clé introduit la sous-requête corrélée. Il indique à la base de données d'exécuter la sous-requête pour chaque ligne de la table customers.
Sous-requête : la sous-requête calcule la valeur TotalQuantity pour chaque client en effectuant les opérations suivantes :
Sélectionner la somme de quantity dans la table orders, associée à order.
Filtrer la table orders en fonction de la valeur CustomerId de la ligne actuelle de la table customers.
Résultat : CROSS APPLY renvoie une seule ligne pour chaque client, contenant CustomerId, CustomerName et la valeur TotalQuantity calculée.
Concrètement, CROSS APPLY permet de générer une nouvelle colonne de façon dynamique (TotalQuantity) pour chaque client en fonction des résultats de la sous-requête, en joignant ainsi la table customers contenant les données de commande agrégées.
Exemple :
Supposons que vous disposiez des données suivantes :
Clients :
CustomerId
CustomerName
1
John Doe
2
Jane Smith
Commandes :
OrderId
CustomerId
Quantité
1
1
5
2
1
3
3
2
2
La requête renverra le résultat suivant :
CustomerId
CustomerName
TotalQuantity
1
John Doe
8
2
Jane Smith
2
Remarque :
CROSS APPLY est semblable à OUTER APPLY, mais OUTER APPLY renvoie une ligne même si la sous-requête ne renvoie aucun résultat.
Dans cet exemple spécifique, vous pouvez obtenir le même résultat en utilisant une clause JOIN avec une clause GROUP BY. Toutefois, CROSS APPLY peut s'avérer plus flexible et efficace dans certains scénarios, en particulier lors du traitement de sous-requêtes complexes.
Modèle :
gemini-1.5-flash-001
Température :
1
Nombre maximal de jetons de sortie :
8 192
TopK :
40
TopP :
0,95
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/09/06 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2024/09/06 (UTC)."],[],[]]