Wählen Sie die 10 wichtigsten Datensätze in Oracle mithilfe von Unterabfragen und Filtern aus
In der Oracle-Datenbank können Sie Unterabfragen und Filtertechniken verwenden, um die Top-10-Datensätze sortiert nach einer bestimmten Spalte auszuwählen. Die ursprünglich zur Auswahl aller übereinstimmenden Datensätze verwendete Abfrage kann so geändert werden, dass sie diese Anforderung enthält.
Um das Problem der Rückgabe „zufälliger“ Datensätze zu lösen, können Sie die ROWNUM-Klausel verwenden (die das Oracle-Äquivalent der LIMIT-Klausel ist).
Geänderte Abfrage:
<code class="language-sql">SELECT * FROM ( SELECT DISTINCT APP_ID, NAME, STORAGE_GB, HISTORY_CREATED, TO_CHAR(HISTORY_DATE, 'DD.MM.YYYY') AS HISTORY_DATE FROM HISTORY WHERE STORAGE_GB IS NOT NULL AND APP_ID NOT IN ( SELECT APP_ID FROM HISTORY WHERE TO_CHAR(HISTORY_DATE, 'DD.MM.YYYY') = '06.02.2009' ) ORDER BY STORAGE_GB DESC ) WHERE ROWNUM <= 10;</code>
Diese Abfrage verwendet zunächst eine Unterabfrage, um passende Datensätze abzurufen. Anschließend wendet es die ROWNUM-Klausel an, um die Top-10-Datensätze aus dem resultierenden Datensatz basierend auf den Sortierkriterien auszuwählen.
Leistungshinweise:
Wenn die Abfrageleistung bei der Verarbeitung großer Datenmengen langsam ist, sollten Sie die Verwendung von NOT EXISTS anstelle von NOT IN für das Unterabfrageprädikat in Betracht ziehen. NOT EXISTS ist möglicherweise effizienter, wenn die Unterabfrage eine große Anzahl von Datensätzen enthält.
Das obige ist der detaillierte Inhalt vonWie wähle ich die Top 10 Oracle-Datensätze mithilfe einer Unterabfrage und Filterung aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!