Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Ein SQL-Code-Snippet erklären.
Sie können ein Modell direkt abfragen und die zurückgegebenen Ergebnisse testen, wenn Sie verschiedene Parameterwerte mit der Cloud Console oder durch direkten Aufruf der Vertex AI API verwenden.
Erklären Sie die Funktion von CROSS APPLY im folgenden Code:
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;
Antwort
Die Funktion CROSS APPLY in diesem SQL-Code fungiert als korrelierte Unterabfrage, die die Ergebnisse der Unterabfrage auf jede Zeile in der Tabelle customers anwendet. Aufschlüsselung:
Äußere Abfrage: Die Hauptabfrage wählt CustomerId und CustomerName aus der Tabelle customers mit dem Alias customer aus.
CROSS APPLY: Dieses Keyword führt die korrelierte Unterabfrage ein. Sie weist die Datenbank an, die Unterabfrage für jede Zeile in der Tabelle customers auszuführen.
Unterabfrage: Die Unterabfrage berechnet den TotalQuantity für jeden Kunden so:
Auswählen der Summe von quantity aus der Tabelle orders mit dem Alias order.
Filterung der Tabelle orders basierend auf dem CustomerId aus der aktuellen Zeile in der Tabelle customers.
Ergebnis:CROSS APPLY gibt für jeden Kunden eine einzelne Zeile zurück, die CustomerId, CustomerName und die berechnete TotalQuantity enthält.
Im Wesentlichen bedeutet dies: Mit CROSS APPLY können Sie dynamisch eine neue Spalte (TotalQuantity) für jeden Kunden anhand der Ergebnisse der Unterabfrage generieren, wodurch die Tabelle customers mit den aggregierten Bestelldaten effektiv verknüpft wird.
Beispiel:
Angenommen, Sie haben die folgenden Daten:
Kunden:
CustomerId
CustomerName
1
Max Muster
2
Melanie Muster
Bestellungen:
OrderId
CustomerId
Menge
1
1
5
2
1
3
3
2
2
Die Abfrage würde das folgende Ergebnis zurückgeben:
CustomerId
CustomerName
TotalQuantity
1
Max Muster
8
2
Melanie Muster
2
Hinweis:
CROSS APPLY entspricht OUTER APPLY, aber OUTER APPLY gibt eine Zeile zurück, auch wenn die Unterabfrage keine Ergebnisse zurückgibt.
In diesem speziellen Beispiel könnten Sie dasselbe Ergebnis mit einem JOIN mit einer GROUP BY-Klausel erzielen. CROSS APPLY kann in bestimmten Szenarien jedoch flexibler und effizienter sein, insbesondere bei komplexen Unterabfragen.
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","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"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2024-08-07 (UTC)."],[],[]]