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!

SQL - Group By vs Order By

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:

  1. Wir SELECT den product_name und die SUM der quantity_sold.
  2. Wir erhalten diese Daten aus unserer sales Tabelle.
  3. 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:

  1. Gruppiert Verkäufe nach Produkt.
  2. Berechnet die Gesamtmenge verkaufter Produkte für jedes Produkt.
  3. 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:

  1. Gruppiert Verkäufe nach Produkt und Datum.
  2. Sortiert zuerst nach Produktname (alphabetisch).
  3. 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:

  1. Gruppiert Verkäufe nach Monat und Produkt.
  2. Berechnet die Gesamtvverkäufe für jedes Produkt in jedem Monat.
  3. Sortiert die Ergebnisse nach Monat (aufsteigend) und dann nach Gesamtvverkäufen (absteigend).
  4. 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