SQL - Group By vs Order By
Hallo, angehende SQL-Enthusiasten! Heute tauchen wir in zwei grundlegende Klauseln in SQL ein: Group By und Order By. Als Ihr freundlicher Nachbarschafts-Computerlehrer freue ich mich darauf, Sie durch diese Konzepte zu führen. Machen Sie sich keine Sorgen, wenn Sie neu im Programmieren sind – wir beginnen bei den Grundlagen und arbeiten uns hoch. Holen Sie sich also eine Tasse Kaffee (oder Tee, wenn das Ihr Ding ist) und lassen Sie uns unsere SQL-Abenteuer beginnen!
Die SQL Group By Klausel
Was ist Group By?
Die Group By Klausel ist wie ein hilfreicher Organisator für Ihre Daten. Stellen Sie sich vor, Sie haben einen schmutzigen Schrank voller Kleidung. Group By hilft Ihnen, diese Kleidung in ordentliche Stapel nach bestimmten Merkmalen zu sortieren – wie Farbe oder Art der Kleidung.
In SQL-Begriffen ermöglicht Group By das Arrangieren Ihrer Daten in Gruppen basierend auf einer oder mehreren Spalten. Dies ist besonders nützlich, wenn Sie Berechnungen oder Zusammenfassungen auf diese Gruppen durchführen möchten.
Grundlegende Syntax
Hier ist die grundlegende Struktur einer Group By Klausel:
SELECT column1, column2, aggregate_function(column3)
FROM table_name
GROUP BY column1, column2;
Lassen Sie uns dies herunterbrechen:
- Wir SELECT die Spalten, die wir in unserem Ergebnis sehen möchten.
- Wir geben an, aus welcher Tabelle wir die Daten erhalten.
- Der GROUP BY Teilweist SQL, welche Spalten zur Gruppierung verwendet werden sollen.
Beispiel 1: Gruppierung von Verkäufen nach Produkt
Stellen wir uns vor, wir haben eine Tabelle namens sales
mit den Spalten: product_name
, quantity_sold
und sale_date
. Lassen Sie uns unsere Verkäufe nach Produkt gruppieren:
SELECT product_name, SUM(quantity_sold) as total_sold
FROM sales
GROUP BY product_name;
Diese Abfrage zeigt uns die Gesamtmenge verkaufter Produkte für jedes Produkt. Hier ist, was passiert:
- Wir SELECT den
product_name
und die SUM derquantity_sold
. - Wir erhalten diese Daten aus unserer
sales
Tabelle. - Wir GRUPPIEREN nach
product_name
, sodass SQL für jedes einzigartige Produkt eine Gruppe erstellt.
Das Ergebnis könnte so aussehen:
product_name | total_sold |
---|---|
Apple | 150 |
Banana | 200 |
Orange | 175 |
Beispiel 2: Mehrfache Spaltengruppierung
Wir können auch nach mehreren Spalten gruppieren. Angenommen, wir möchten unsere Verkäufe nach Produkt und Datum gruppieren:
SELECT product_name, sale_date, SUM(quantity_sold) as daily_total
FROM sales
GROUP BY product_name, sale_date;
Diese Abfrage gruppiert unsere Verkäufe nach Produkt und Datum und zeigt tägliche Gesamtverkäufe für jedes Produkt.
Die SQL Order By Klausel
Was ist Order By?
Wenn Group By unser Schrankorganisator ist, ist Order By wie das Sortieren unserer Kleidung von hell nach dunkel oder von kurz nach lang. Es geht darum, unsere Daten in einer bestimmten Reihenfolge zu sortieren.
Grundlegende Syntax
Die grundlegende Struktur einer Order By Klausel ist:
SELECT column1, column2
FROM table_name
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC];
- ASC bedeutet aufsteigende Reihenfolge (kleinste zu größte, oder A bis Z).
- DESC bedeutet absteigende Reihenfolge (größte zu kleinste, oder Z bis A).
- Wenn Sie nicht angeben, geht SQL standardmäßig von ASC aus.
Beispiel 3: Sortierung von Produkten nach Verkäufen
Lassen Sie uns unsere Produkte nach ihren Gesamtverkäufen sortieren:
SELECT product_name, SUM(quantity_sold) as total_sold
FROM sales
GROUP BY product_name
ORDER BY total_sold DESC;
Diese Abfrage doet folgendes:
- Gruppiert Verkäufe nach Produkt.
- Berechnet die Gesamtmenge verkaufter Produkte für jedes Produkt.
- Sortiert die Ergebnisse von hoch nach niedrig.
Das Ergebnis könnte so aussehen:
product_name | total_sold |
---|---|
Banana | 200 |
Orange | 175 |
Apple | 150 |
Beispiel 4: Mehrfache Spaltensortierung
Wir können auch nach mehreren Spalten sortieren:
SELECT product_name, sale_date, SUM(quantity_sold) as daily_total
FROM sales
GROUP BY product_name, sale_date
ORDER BY product_name ASC, daily_total DESC;
Diese Abfrage:
- Gruppiert Verkäufe nach Produkt und Datum.
- Sortiert zuerst nach Produktname (alphabetisch).
- Dann nach täglicher Gesamtmenge (von hoch nach niedrig) innerhalb jeder Produktgruppe.
Group By vs Order By
Nun, da wir beide Group By und Order By in Aktion gesehen haben, lassen Sie uns sie vergleichen:
Funktion | Group By | Order By |
---|---|---|
Zweck | Organisiert Daten in Gruppen | Sortiert Daten in einer bestimmten Reihenfolge |
Verwendung | Wird mit Aggregatfunktionen verwendet | Kann mit oder ohne Aggregate verwendet werden |
Ergebnis | Reduziert die Anzahl der Zeilen (zusammenfasst) | Ändert nicht die Anzahl der Zeilen |
Position | Kommt vor ORDER BY in der Abfrage | Kommt nach GROUP BY (falls vorhanden) |
Funktionalität | Erzeugt Gruppen für Aggregatberechnungen | Bestimmt die Reihenfolge der Ausgabezeilen |
Wann man Group By verwendet
Verwenden Sie Group By, wenn Sie möchten:
- Daten zusammenfassen (wie Gesamtwerte oder Durchschnitte für jede Gruppe).
- Berechnungen auf Gruppen von Daten durchführen.
- Die Anzahl der Zeilen in Ihrem Ergebnis reduzieren.
Wann man Order By verwendet
Verwenden Sie Order By, wenn Sie möchten:
- Ihre Ergebnisse in einer bestimmten Reihenfolge sortieren (aufsteigend oder absteigend).
- Daten in einer lesbarer oder logischer Reihenfolge präsentieren.
- Die höchsten oder niedrigsten Werte in Ihren Daten finden.
Beispiel 5: Kombination von Group By und Order By
Lassen Sie uns alles zusammenbringen mit einem letzten Beispiel. Angenommen, wir möchten die drei am besten verkauften Produkte für jeden Monat finden:
SELECT
EXTRACT(MONTH FROM sale_date) as month,
product_name,
SUM(quantity_sold) as total_sold
FROM
sales
GROUP BY
EXTRACT(MONTH FROM sale_date), product_name
ORDER BY
month ASC, total_sold DESC
LIMIT 3;
Diese Abfrage:
- Gruppiert Verkäufe nach Monat und Produkt.
- Berechnet die Gesamtvverkäufe für jedes Produkt in jedem Monat.
- Sortiert die Ergebnisse nach Monat (aufsteigend) und dann nach Gesamtvverkäufen (absteigend).
- Begrenzt die Ausgabe auf die drei besten Produkte für jeden Monat.
Und dort haben wir es! Wir haben die Länder von Group By und Order By bereist. Erinnern Sie sich daran, Übung macht den Meister, also fürchten Sie sich nicht, diese Klauseln in Ihren eigenen Abfragen auszuprobieren. Frohes SQL-Coding und möge Ihre Daten stets gut organisiert und perfekt sortiert sein!
Credits: Image by storyset