Blog

Der Underdog von Oracle SQL - Analytische Funktionen

Byju Parameshwaran Nair

Byju Parameshwaran Nair

Aktualisiert Oktober 22, 2025
3 Minuten

Oracle analytische Funktionen

es ist eine der am wenigsten genutzten Funktionen in Oracle SQL. Die meisten Entwickler sind sich dessen entweder nicht bewusst oder finden die normale SQL-Syntax einfacher als die analytische Funktion. Tatsache ist jedoch, dass die analytischen Funktionen von Oracle effizienter und schneller sind als die Verwendung einer Kette von Joins, Unterabfragen, Gruppierung nach und Reihenfolge nach. Ziel dieses Artikels ist es nicht, analytische Funktionen zu lehren, sondern Sie dazu anzuregen, sie häufiger zu verwenden.

Die Syntax der analytischen Funktionen von Oracle ist Teil normaler SQL-Abfragen und kann in Kombination mit normalem SQL geschrieben werden.

Was ist eine analytische Funktion?

Analytische Funktionen arbeiten mit einer Gruppe von Zeilen, um einen Gesamtwert zurückzugeben, sie unterscheiden sich von der normalen Gruppe durch Funktionen wie SUM dadurch, dass sie mehrere Zeilen pro Gruppe anstelle von 1 Zeile pro Gruppe zurückgeben.

Hier sind einige Beispiele für analytische Orakelfunktionen

Nehmen wir an, es gibt eine Tabelle Fach, die eine Liste von Fächern für jeden Kurs enthält.

Orakel analytische Funktion

Die folgende Abfrage gibt eine Liste von Kursen und die Anzahl der Fächer in jedem Kurs zurück, indem sie die normale Gruppierung nach analytischer Klausel verwendet.

Orakel analytische Funktion

Diese analytische Klausel erlaubt es uns nicht, eine andere Spalte wie Name auszuwählen, die nicht in der analytischen Klausel group by angegeben ist.

Mit der analytischen Funktion von Oracle ist es möglich, andere Spalten als die Gruppe auszuwählen. Sie erlaubt uns auch, mehrere Zeilen pro Gruppe zurückzugeben. Die folgende Abfrage gibt den Namen des Fachs, den Kurs und die Anzahl der Fächer in jedem Kurs zurück.

Orakel analytische Funktion

Mit dieser Abfrage können wir mehrere Datensätze zurückgeben, d.h. Kurse und Fächer sowie die Anzahl der Fächer in jedem Kurs mit einer einzigen Abfrage, was mit normalen SQL-Abfragen nicht möglich ist.

Weitere Erklärungen und Beispiele vermitteln Ihnen eine bessere Vorstellung davon, wie die analytischen Funktionen von Oracle zur Erweiterung normaler SQL-Abfragen und zum effizienteren Abruf komplexer Daten verwendet werden können und die Programmierung erleichtern.

Eingebaute Funktionen

Gängige analytische Funktionen sind SUM, COUNT, AVG, MIN, MAX. Andere, fortgeschrittenere Funktionen sind LEAD, LAG, RANK, DENSE_RANK, ROW_NUMBER, FIRST, FIRST VALUE, LAST, LAST VALUE.

Die Funktionen LEAD und LAG sind insofern interessant, als LEAD die Berechnung eines Ausdrucks für die Daten in der nächsten unmittelbaren Zeile ermöglicht und das Ergebnis in die aktuelle Zeile zurückgibt. LAG bewirkt das Gegenteil, indem es das Ergebnis der Berechnung der vorherigen Zeile an die aktuelle Zeile zurückgibt.

Mit RANK und DENSE_RANK können wir den Rang von Datensätzen basierend auf einem Spaltenwert oder Ausdruck innerhalb einer Gruppe oder insgesamt zurückgeben. Wir können diesen Rang verwenden, um eine Untergruppe von Datensätzen zu ordnen. Ordnen Sie zum Beispiel Datensätze nach dem Rang des Gehalts innerhalb jeder Abteilung.

Ausführung

In SQL-Abfragen werden analytische Funktionen am Ende ausgeführt, nach der Ausführung der WHERE-, GROUP BY- und HAVING-Klauseln. ORDER BY wird nach den analytischen Funktionen ausgeführt. Analytische Funktionen sind nur in der SELECT-Klausel oder der ORDER BY-Klausel erlaubt. Verschachtelte analytische Funktionen sind nicht erlaubt, aber sie sind in Unterabfragen erlaubt.

Es wird dringend empfohlen, die analytischen Funktionen von Oracle zu verwenden, wo immer dies möglich ist, da sie für das Data Mining optimiert sind, anstatt umständliche und komplizierte SQL-Abfragen zu erstellen. Schauen Sie sich die in diesem Beitrag genannten Referenzen an, um mehr über die Verwendung von Analysefunktionen zu erfahren.

Verfasst von

Byju Parameshwaran Nair

Contact

Let’s discuss how we can support your journey.