Zeilen in Teradata mit dem Schlüsselwort TOP begrenzen
Das Schlüsselwort TOP ist der einfachste Weg, Zeilen in Teradata zu begrenzen. Damit legst du genau fest, wie viele Zeilen zurückgegeben werden.
Syntax:
SELECT TOP n column1, column2, ...
FROM table_name;
Beispiel:
Angenommen, du hast eine Tabelle namens employees und möchtest die ersten 10 Zeilen abrufen.
SELECT TOP 10 employee_id, first_name, last_name
FROM employees;
Erwartete Ausgabe:
employee_id | first_name | last_name
-------------|------------|-----------
1 | John | Doe
2 | Jane | Smith
... | ... | ...
10 | Alice | Brown
Das Schlüsselwort SAMPLE verwenden
Eine weitere Möglichkeit, Zeilen in Teradata zu begrenzen, ist das Schlüsselwort SAMPLE. Das ist besonders praktisch, wenn du eine zufällige Stichprobe statt der ersten Zeilen brauchst.
Syntax:
SELECT column1, column2, ...
FROM table_name
SAMPLE n;
Beispiel:
So rufst du eine zufällige Stichprobe von 5 Zeilen aus der Tabelle employees ab:
SELECT employee_id, first_name, last_name
FROM employees
SAMPLE 5;
Erwartete Ausgabe:
employee_id | first_name | last_name
-------------|------------|-----------
7 | Emma | Johnson
3 | Robert | Lee
... | ... | ...
12 | Olivia | Davis
SAMPLE mit einem Prozentsatz verwenden
Mit der SAMPLE-Klausel kannst du Zeilen auch prozentual begrenzen.
Syntax:
SELECT column1, column2, ...
FROM table_name
SAMPLE n PERCENT;
Beispiel:
Eine Stichprobe von 10 % der Zeilen aus der Tabelle employees abrufen:
SELECT employee_id, first_name, last_name
FROM employees
SAMPLE 10 PERCENT;
Erwartete Ausgabe:
employee_id | first_name | last_name
-------------|------------|-----------
2 | Jane | Smith
9 | Mark | Wilson
... | ... | ...
22 | Lucas | Adams
QUALIFY mit ROW_NUMBER() verwenden
Für komplexere Szenarien kannst du die Klausel QUALIFY mit ROW_NUMBER() kombinieren. Mit dieser Methode kannst du zusätzliche Filter und Bedingungen anwenden.
Syntax:
SELECT column1, column2, ...
FROM table_name
QUALIFY ROW_NUMBER() OVER (PARTITION BY partition_column ORDER BY sort_column) <= n;
Beispiel:
Die 5 bestbezahlten Mitarbeiter in jeder Abteilung abrufen:
SELECT department_id, employee_id, salary
FROM employees
QUALIFY ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) <= 5;
Erwartete Ausgabe:
department_id | employee_id | salary
---------------|-------------|--------
1 | 101 | 120000
1 | 102 | 115000
... | ... | ...
2 | 201 | 95000
... | ... | ...
Fazit
Zeilen in Teradata lassen sich auf verschiedene Arten begrenzen, die jeweils für unterschiedliche Szenarien geeignet sind. Das Schlüsselwort TOP ist ideal für einfache Begrenzungen, während SAMPLE zufällige und prozentuale Stichproben liefert. Für komplexere Anforderungen bietet ROW_NUMBER() mit QUALIFY eine leistungsstarke Zeilenbegrenzung anhand bestimmter Bedingungen. Wenn du diese Techniken beherrschst, kannst du große Datenmengen in Teradata effizienter und effektiver verwalten.
Weitere Artikel, die dir gefallen könnten:
Beekeeper Studio ist eine kostenlose & quelloffene Datenbank-GUI
Das beste SQL-Abfrage- & Editor-Tool, das ich je benutzt habe. Es bietet alles, was ich zum Verwalten meiner Datenbank brauche. - ⭐⭐⭐⭐⭐ Mit
Beekeeper Studio ist schnell, intuitiv und einfach zu bedienen. Beekeeper unterstützt jede Menge Datenbanken und läuft hervorragend auf Windows, Mac und Linux.
Was Nutzer über Beekeeper Studio sagen
„Beekeeper Studio hat meinen alten SQL-Workflow komplett ersetzt. Es ist schnell, intuitiv und macht die Arbeit mit Datenbanken wieder zum Vergnügen.“
„Ich habe viele Datenbank-GUIs ausprobiert, aber Beekeeper findet die perfekte Balance zwischen Funktionsumfang und Einfachheit. Es funktioniert einfach.“