Kodokon kodokon.com

Sortieren und Duplikate entfernen: ORDER BY, LIMIT, DISTINCT

Beherrsche das Sortieren von Ergebnissen mit ORDER BY, das Begrenzen der Zeilenanzahl mit LIMIT und das Entfernen von Duplikaten mit DISTINCT.

6 Min. · 3 Fragen

Diese Lektion in Kodokon öffnen

Standardmäßig ist die Reihenfolge der von einem SELECT gelieferten Zeilen nicht garantiert: Die Datenbank liefert sie so, wie es ihr passt. Um eine Reihenfolge zu erzwingen, füge ORDER BY gefolgt von einer Spalte hinzu. Die Sortierung ist standardmäßig aufsteigend (du kannst das mit ASC explizit machen); füge DESC für eine absteigende Sortierung hinzu.

SQL
SELECT title, price FROM books ORDER BY price;

SELECT title, price FROM books ORDER BY price DESC;
Vom günstigsten zum teuersten, dann umgekehrt

Du kannst nach mehreren Spalten sortieren: ORDER BY genre, price DESC sortiert zuerst nach genre, dann, innerhalb desselben Genres, vom teuersten zum günstigsten. Die LIMIT-Klausel behält nur die ersten N Zeilen des Ergebnisses: Kombiniert mit ORDER BY liefert sie dir ein "Top N". LIMIT 3 OFFSET 2 würde zusätzlich die ersten 2 Zeilen überspringen.

SQL
SELECT title, price FROM books
ORDER BY price DESC
LIMIT 3;
Die 3 teuersten Bücher

Ein letztes Werkzeug: DISTINCT, direkt nach SELECT platziert, entfernt Duplikate aus dem Ergebnis. Unsere Tabelle enthält 7 Bücher, aber nur 3 verschiedene Genres: Ohne DISTINCT würde die Query unten 7 Zeilen mit Wiederholungen anzeigen.

SQL
SELECT DISTINCT genre FROM books;

SELECT DISTINCT author FROM books;
3 eindeutige Genres, dann 6 eindeutige Autoren

Wissenscheck

Stelle sicher, dass du die wichtigsten Punkte dieser Lektion behalten hast.

  1. Wie sortierst du die Bücher vom teuersten zum günstigsten?
    • ORDER BY price
    • ORDER BY price DESC
    • SORT BY price DESC
  2. Was liefert SELECT DISTINCT genre FROM books; bei unserer Tabelle?
    • Die 7 Genres, eines pro Buch
    • Jedes Genre nur einmal, also 3 Zeilen
    • Das häufigste Genre
  3. Was liefert LIMIT 5, wenn es ohne ORDER BY verwendet wird?
    • Die 5 neuesten Zeilen
    • 5 Zeilen in einer nicht garantierten Reihenfolge
    • Einen Syntaxfehler