UNTERSCHIEDLICH in PostgreSQL: Auswählen, Sortieren nach und Begrenzen (Beispiele)
⚡ Intelligente Zusammenfassung
UNTERSCHIEDLICH in PostgreSQL Wird zusammen mit einer SELECT-Anweisung verwendet, um doppelte Zeilen zu entfernen und nur eindeutige Werte zurückzugeben. Es behandelt die SELECT-Syntax, die SQL-Shell und pgAdmin, DISTINCT für einzelne und mehrere Spalten sowie DISTINCT im Vergleich zu GROUP BY.
Sie können Daten aus der Tabelle mithilfe einer SELECT-Anweisung abrufen.
Syntax:
SELECT [column names] FROM [table_name]
Dabei steht:
- Spaltennamen: Name der Spalten, deren Werte Sie abrufen möchten.
- VON: Die FROM-Klausel definiert eine oder mehrere Quelltabellen für die SELECT-Anweisung.
- Tabellenname: Der Name einer bestehenden Tabelle, die Sie abfragen möchten.
Was ist DISTINCT in PostgreSQL?
Das DISTINCT Klausel in PostgreSQL SELECT DISTINCT wird zusammen mit einer SELECT-Anweisung verwendet, um doppelte Zeilen aus dem Ergebnis-Set zu entfernen. Wenn eine Spalte wiederholte Werte enthält, gibt SELECT DISTINCT nur die eindeutigen Werte zurück.ping Für jede Gruppe von Duplikaten wird eine eigene Zeile erstellt. Dies ist nützlich, wenn Sie eine Liste eindeutiger Einträge benötigen, z. B. eindeutige Kundenstädte oder Produktkategorien, ohne Wiederholungen.
DISTINCT wertet alle in der SELECT-Anweisung aufgeführten Spalten aus, um zu entscheiden, ob eine Zeile eindeutig ist. PostgreSQL Die Funktion DISTINCT ON gibt die erste Zeile für jeden eindeutigen Wert eines angegebenen Ausdrucks zurück. Sie können DISTINCT mit ORDER BY kombinieren, um die angezeigten Zeilen zu steuern, und mit LIMIT, um die Anzahl der Ergebnisse zu begrenzen.
PostgreSQL Wählen Sie eine Anweisung in der SQL-Shell aus
Schritt 1) Wir haben eine Tabelle namens „tutorials“ mit zwei Spalten: „id“ und „tutorial_name“. Lassen Sie uns diese Tabelle abfragen. Verwenden Sie die folgende Abfrage, um die Daten in der Tabelle aufzulisten:
SELECT id,tutorial_name FROM tutorials;
Anmerkungen: Verwenden Sie den Befehl \c, um eine Verbindung zu der Datenbank herzustellen, die die abzufragende Tabelle enthält. In unserem Fall sind wir mit der Datenbank guru99 verbunden.
Schritt 2) Um alle Spalten einer bestimmten Tabelle anzuzeigen, kann man das Sternchen (*) als Platzhalterzeichen verwenden. Dadurch werden alle Möglichkeiten geprüft und somit alle Spalten zurückgegeben.
SELECT * FROM tutorials;
Es zeigt alle Datensätze der Tutorials-Tabelle an.
Schritt 3) Sie können die ORDER-Klausel verwenden, um Daten in einer Tabelle basierend auf einer bestimmten Spalte zu sortieren. Die ORDER-Klausel organisiert Daten in der Reihenfolge von A bis Z.
SELECT * FROM tutorials ORDER BY id;
Sie können von Z nach A sortieren, indem Sie „DESC“ nach der Anweisung „ORDER BY“ verwenden.
SELECT * FROM tutorials ORDER BY id DESC;
Schritt 4) Die SELECT DISTINCT-Anweisung in PostgreSQL Mit der Klausel können doppelte Zeilen aus dem Ergebnis entfernt werden. Für jede Gruppe von Duplikaten wird eine Zeile beibehalten.
Syntax: SELECT DISTINCT column_1 FROM table_name;
Lassen Sie uns in unseren Tutorials mithilfe von DISTINCT-Abfragen die eindeutigen ID-Werte aus unserer Tabelle in PostgreSQL abfragen. PostgreSQL:
SELECT DISTINCT(id) FROM tutorials;
Schritt 5) Sie können die Verwendung PostgreSQL LIMIT-Klausel zur Beschränkung der Anzahl der von der SELECT-Abfrage zurückgegebenen Datensätze.
SELECT * FROM tutorials LIMIT 4;
PostgreSQL Select Statement in pgAdmin
Schritt 1) Im Objektbaum:
- Klicken Sie mit der rechten Maustaste auf die Tabelle.
- Skripte auswählen.
- Klicken Sie auf SCRIPT AUSWÄHLEN.
Schritt 2) Im rechten Feld:
- Bearbeiten Sie die SELECT-Abfrage gegebenenfalls.
- Klicken Sie auf das Blitzsymbol.
- Beobachten Sie die Ausgabe.
DISTINCT auf mehreren Spalten
Die SELECT DISTINCT-Klausel kann auch auf mehrere Spalten angewendet werden. Wenn Sie nach DISTINCT mehrere Spalten auflisten, PostgreSQL Die Kombination dieser Spalten wird als Einheit behandelt, und Zeilen, in denen diese gesamte Kombination doppelt vorkommt, werden entfernt.
Syntax: SELECT DISTINCT column_1, column_2 FROM table_name;
Um beispielsweise die eindeutigen Kombinationen aus tutorial_name und id aus der Tabelle tutorials zurückzugeben:
SELECT DISTINCT tutorial_name, id FROM tutorials;
In diesem Fall wird eine Zeile nur dann entfernt, wenn sowohl `tutorial_name` als auch `id` mit einer anderen Zeile übereinstimmen. Haben zwei Zeilen denselben `tutorial_name`, aber unterschiedliche `id`-Werte, bleiben beide erhalten, da die Kombination weiterhin eindeutig ist. Dieses Verhalten ist wichtig zu beachten: DISTINCT entfernt nicht Duplikate aus einer einzelnen Spalte, wenn mehrere Spalten ausgewählt sind, sondern aus allen ausgewählten Spalten.
DISTINCT vs GROUP BY in PostgreSQL
Sowohl DISTINCT als auch GROUP BY können doppelte Werte entfernen, dienen aber unterschiedlichen Zwecken:
- DISTINCT Gibt einfach nur die eindeutigen Zeilen aus dem Ergebnis zurück und eignet sich am besten, wenn Sie lediglich eine deduplizierte Liste benötigen.
- GRUPPIERE NACH gruppiert Zeilen, die einen gemeinsamen Wert haben, sodass Sie Aggregatfunktionen wie COUNT, SUM oder AVG jeder Gruppe.
Beispielsweise liefern die beiden folgenden Abfragen beide die eindeutigen ID-Werte zurück:
SELECT DISTINCT id FROM tutorials; SELECT id FROM tutorials GROUP BY id;
Verwenden Sie DISTINCT für eine einfache Liste eindeutiger Werte und GROUP BY, wenn Sie zusätzlich eine Berechnung pro Gruppe benötigen, z. B. um zu zählen, wie viele Tutorials dieselbe ID haben. Bei einfachen Abfragen erzielt der Abfrageplaner oft eine ähnliche Performance für beide Methoden, GROUP BY ist jedoch immer dann erforderlich, wenn Aggregationen verwendet werden.
Spickzettel
SELECT [column names] FROM [table_name] [clause]
Hier sind die verschiedenen Parameter:
- Spaltennamen: Name der Spalten, deren Werte Sie abrufen möchten.
- VON: Die FROM-Klausel definiert eine oder mehrere Quelltabellen für die SELECT-Anweisung.
- Tabellenname: Der Name einer bestehenden Tabelle, die Sie abfragen möchten.
Verschiedene Klauseln sind:
| Befehle | Beschreibung |
|---|---|
| * | Ruft Datensätze für alle Zeilen in der Tabelle ab. |
| DISTINCT | UNTERSCHIEDLICH in PostgreSQL Hilft Ihnen dabei, Duplikate aus dem Ergebnis zu entfernen. |
| SORTIEREN NACH | Sortiert Zeilen anhand einer Spalte. Standardmäßig wird aufsteigend sortiert. Verwenden Sie das Schlüsselwort DESC, um absteigend zu sortieren. |
| LIMIT | LIMIT in PostgreSQL schränkt die Anzahl der von der Abfrage zurückgegebenen Datensätze ein. |









