Zurück zur Artikelliste Artikel
8 Leseminuten

Die 9 wichtigsten SQL GROUP BY Interview Fragen

Bereiten Sie sich auf ein SQL-Vorstellungsgespräch vor? Dieser Leitfaden führt Sie durch neun grundlegende, mittlere und fortgeschrittene GROUP BY-Fragen, die Sie möglicherweise beantworten müssen.

Es gibt häufige GROUP BY Fragen, die in vielen SQL-Vorstellungsgesprächen auftauchen; in diesem Artikel erklären wir, wie Sie sie beantworten können. Wenn Sie ein Datenanalytiker oder ein anderer Datenexperte sind, der sich auf ein Vorstellungsgespräch vorbereitet, soll dieser Artikel Ihnen helfen. Natürlich kann auch jeder, der sich für SQL und die GROUP BY Klausel interessiert, diese Fragen lesen. Wahrscheinlich werden Sie etwas Neues und Interessantes über diese beliebte Klausel lernen.

Dieser Artikel ist in zwei Abschnitte unterteilt: Grundlegende Fragen und Fragen für Fortgeschrittene und Profis. Dieser schrittweise Ansatz spiegelt auch unsere Kurse wider, die die GROUP BY Klausel behandeln, einschließlich unseres SQL für Anfänger Kurses. In 129 interaktiven Übungen werden wichtige grundlegende SQL-Themen wie GROUP BY, JOINs, WHERE und Mengenoperationen (UNION, INTERSECT, EXCEPT) vorgestellt.

Die mittleren und fortgeschrittenen Nuancen von GROUP BY werden in unserem KursErstellen einfacher SQL-Berichte behandelt. Hier lernen Sie, wie Sie Daten aggregieren, die Anweisung CASE WHEN verwenden, komplexere Metriken, Verhältnisse und Datenvergleiche erstellen und mit Common Table Expressions (CTEs) arbeiten können. Wenn Sie mehr erfahren möchten, werfen Sie einen Blick auf diesen Artikel über den Kurs Erstellen einfacher SQL-Berichte .

Beginnen wir diesen Überblick mit einigen grundlegenden Interviewfragen!

Grundlegende GROUP BY-Interview-Fragen

1: Was bedeutet GROUP BY Funktion?

Die GROUP BY Klausel in SQL ordnet die Abfrageausgabe in Gruppen an, wobei alle Zeilen mit demselben Wert in einer bestimmten Spalte zu einer Gruppe gehören. Wenn Sie zum Beispiel eine Tabelle haben, in der Mitarbeiterdaten gespeichert sind, können Sie die Mitarbeiter nach Abteilung zählen oder das Durchschnittsgehalt für jede Abteilung ermitteln. GROUP BY wird normalerweise mit den Aggregatfunktionen verwendet, wie z. B. COUNT(), SUM(), AVG(), MIN(), MAX().

Eine genauere Übersicht über GROUP BY finden Sie in unserem Artikel Wie funktioniert SQL GROUP BY?

2: Verwenden Sie die Tabelle film_streaming um drei Abfragen zu schreiben.

Es ist typisch, dass der Interviewer den Kandidaten bittet, eine Abfrage unter Verwendung der GROUP BY Klausel zu schreiben. Wir demonstrieren drei Beispiele, die gängige GROUP BY-Themen zeigen.

Die Tabelle movie_streaming enthält Statistiken darüber, wie oft ein Film an jedem Tag gestreamt wurde.

iddatemoviedirectornumber_of_streams
12022-04-01FargoCoen brothers495
22022-04-01The Big LebowskiCoen brothers512
32022-04-01No Country for Old MenCoen brothers270
42022-04-01DogtoothYorgos Lanthimos157
52022-04-01The LobsterYorgos Lanthimos247
62022-04-01The Killing of a Sacred DeerYorgos Lanthimos320
72022-04-02FargoCoen brothers321
82022-04-02The Big LebowskiCoen brothers905
92022-04-02No Country for Old MenCoen brothers308
102022-04-02DogtoothYorgos Lanthimos233
112022-04-02The LobsterYorgos Lanthimos405
122022-04-02The Killing of a Sacred DeerYorgos Lanthimos109

2a: Ermitteln Sie die Gesamtzahl der Streams nach Datum.

In dieser Frage werden Sie aufgefordert, die Daten nach nur einer Spalte zu gruppieren:

SELECT date,
	 SUM(number_of_streams) AS total_number_of_streams
FROM movie_streaming
GROUP BY date;

Die Ausgabe des Codes wird sein:

datetotal_number_of_streams
2022-04-012,001
2022-04-022,281

Die Gruppierung erfolgt anhand der Spalte Datum, und die Aggregatfunktion SUMME() wird verwendet, um die Anzahl der Streams nach Datum zu ermitteln.

2b: Ermitteln Sie die Gesamtzahl der Streams über date und director.

Um eine Antwort auf diese Frage zu erhalten, müssen die Daten nach zwei Spalten gruppiert werden. Zu diesem Zweck müssen die Spalten Datum und director in GROUP BY angegeben und durch ein Komma getrennt werden.

SELECT date,
	 director,
	 SUM(number_of_streams) AS total_number_of_streams
FROM movie_streaming
GROUP BY date, director;

Dies ist das Ergebnis des Codes:

datedirectortotal_number_of_streams
2022-04-01Yorgos Lanthimos724
2022-04-02Coen brothers1,534
2022-04-02Yorgos Lanthimos747
2022-04-01Coen brothers1,277

2c: Ermitteln Sie die Gesamtzahl der Streams nach Datum und Regisseur. Zeige nur Daten mit einer Gesamtzahl von Streams über 740.

SELECT date,
	 director,
	 SUM(number_of_streams) AS total_number_of_streams
FROM movie_streaming
GROUP BY date, director
HAVING SUM(number_of_streams) > 740;

Die Daten werden wieder nach den Spalten date und director gruppiert. Die HAVING Klausel und die Funktion SUM() werden verwendet, um nur die Gesamtzahl der Streams über 740 anzuzeigen. (SUM() addiert die Anzahl der täglichen Ströme; HAVING filtert Ströme heraus, die die Mindestmenge nicht erreichen).

Wenn Sie die Abfrage ausführen, wird das Ergebnis angezeigt:

datedirectortotal_number_of_streams
2022-04-02Coen brothers1,534
2022-04-02Yorgos Lanthimos747
2022-04-01Coen brothers1,277

Weitere Einzelheiten zu diesen Konzepten finden Sie in diesem Artikel , in dem erklärt wird, wie GROUP BY funktioniert.

3: Wie filtert man Gruppen in einer SQL-Abfrage?

Gruppen in einer SQL-Abfrage werden mit der HAVING -Klausel gefiltert. HAVING kann nicht ohne GROUP BY verwendet werden; sie wird immer nach GROUP BY geschrieben und dient dazu, Daten zu filtern, die aus einer Aggregatfunktion resultieren - z. B. das Auffinden von Gruppen, deren Anzahl höher als eine bestimmte Zahl ist usw.

Es ist wichtig zu beachten, dass die WHERE Klausel auch zum Filtern in einer SQL-Abfrage verwendet wird. Während HAVING zum Filtern von Gruppen verwendet wird, filtert WHERE Zeilen. Mit anderen Worten: WHERE filtert Daten, bevor sie aggregiert werden.

4: Was ist der Unterschied zwischen WHERE und HAVING in SQL?

Sowohl WHERE als auch HAVING werden zum Filtern von Daten in einer SQL-Abfrage verwendet. Der Hauptunterschied besteht darin, dass WHERE auf nicht aggregierte Werte angewendet wird, während HAVING auf die aggregierten Werte angewendet wird. Die Reihenfolge der Ausführung ist wie folgt: WHERE - GROUP BY - HAVING. Das bedeutet auch, dass WHERE vor GROUP BY geschrieben wird, während HAVING nach GROUP BY kommt.

In der Praxis filtert WHERE die Daten zuerst. Diese gefilterten Daten werden gruppiert und aggregiert, und dann filtert HAVING die gruppierten und aggregierten Daten.

Beispielsweise würden Sie WHERE verwenden, um nur Benutzer zu filtern, die seit mehr als einem Jahr beschäftigt sind. Dann können Sie das Durchschnittsgehalt für Mitarbeiter mit mehr als einem Jahr Erfahrung nach Abteilung berechnen. Schließlich können Sie mit der HAVING-Klausel nur Abteilungen mit einem Durchschnittsgehalt über einem bestimmten Wert anzeigen. Auf diese Weise filtern Sie die Zeilen vor und nach der Aggregatfunktion. In diesem Artikel finden Sie eine ausführliche Erklärung der Unterschiede zwischen WHERE und HAVING .

Mittlere und fortgeschrittene GROUP BY-Interview-Fragen

5: Welche Funktionen können mit GROUP BY verwendet werden?

Die GROUP BY Klausel wird in der Regel mit den Aggregatfunktionen von SQL verwendet. Diese nehmen Werte aus einzelnen Zeilen, führen eine Berechnung durch und geben einen einzigen Wert zurück. Einige der am häufigsten verwendeten Aggregatfunktionen sind:

  • SUM() - Addiert alle Zeilenwerte.
  • COUNT() - Zählt die Anzahl der Zeilen.
  • AVG() - Gibt den Durchschnittswert zurück.
  • MIN() - Gibt den kleinsten Wert zurück.
  • MAX() - Gibt den größten Wert zurück.

6: Was ist der Unterschied zwischen COUNT(*), COUNT(expression), und COUNT(DISTINCT expression)?

COUNT(*) gibt die Anzahl der Zeilen zurück, einschließlich doppelter Zeilen und Zeilen mit NULL Werten.

Dies unterscheidet sich von COUNT(expression), das nur die Anzahl der Zeilen mit nichtNULL Werten zurückgibt. Es werden auch Zeilen mit doppelten Werten gezählt.

Wenn Sie das Schlüsselwort DISTINCT hinzufügen, werden alle doppelten Zeilen ignoriert, ebenso wie Zeilen mit NULL Werten. Auf diese Weise erhalten Sie die Anzahl der eindeutigen oder unterschiedlichen Zeilen.

In diesem Artikel über die drei Verwendungen der Funktion COUNT() werden die Unterschiede genauer erläutert.

7: Was passiert mit NULLs, wenn Sie die Funktion GROUP BY?

Die GROUP BY Klausel ignoriert nicht die NULL Werte. Wenn Sie sie verwenden und die Spalte NULL Werte enthält, werden daher alle Zeilen mit NULL Spaltenwerten als eine Gruppe behandelt.

Wie funktioniert das in der Praxis? Hier finden Sie eine detailliertere Erklärung von GROUP BY und NULLs, zusammen mit praktischen Beispielen.

8: Was wird dieser Code zurückgeben?

SELECT department,
       month,
 AVG(salary) AS average_salary
FROM salaries
GROUP BY department;

Dieser Code gibt einen Fehler aus, weil die Spalte Monat nicht in GROUP BY steht. Der Fehler tritt auf, weil alle Spalten, die in der Anweisung SELECT erscheinen, in GROUP BY erscheinen müssen. Dieser "kein GROUP BY-Ausdruck"-Fehler muss behoben werden.

Damit der Code funktioniert, sollte er wie folgt geschrieben werden:

SELECT department,
       month,
 	 AVG(salary) AS average_salary
FROM salaries
GROUP BY department, month;

Diese Abfrage gibt nun das Durchschnittsgehalt nach Monat und Abteilung aus.

Alle Spalten, die in der GROUP BY Klausel erscheinen, müssen jedoch nicht in der SELECT Anweisung erscheinen. Daher könnte der obige Code wie folgt aussehen und immer noch keinen Fehler zurückgeben:

SELECT department,
 	 AVG(salary) AS average_salary
FROM salaries
GROUP BY department, month;

Dieser Code funktioniert zwar und gibt die korrekten Durchschnittswerte zurück, aber wenn die Monatsinformationen nicht angezeigt werden, ist es unmöglich zu entziffern, welches Durchschnittsgehalt sich auf welchen Monat bezieht.

9: Was sind GROUP BY Erweiterungen? Was GROUP BY Erweiterungen kennen Sie?

GROUP BY Erweiterungen erweitern die Möglichkeiten der GROUP BY Klausel und ermöglichen die Erstellung komplexerer Berichte durch eine ausgefeiltere Datengruppierung.

Diese Erweiterungen sind ROLLUP, CUBE, und GROUPING SETS. Die Erweiterung ROLLUP wird am häufigsten bei der Berechnung von Zwischensummen in hierarchischen Daten verwendet. Sie geht von der hierarchischen Beziehung zwischen den Daten aus und erstellt Zwischensummen für jede Ebene und eine Gesamtsumme.

Die Erweiterung CUBE ist ähnlich, aber sie erstellt alle möglichen Datenkombinationen und gibt deren Zwischensummen und eine Gesamtsumme zurück.

Die dritte Erweiterung ist GROUPING SETS. Sie ermöglicht es, mehrere GROUP BY -Klauseln in eine GROUP BY -Klausel zu schreiben. Dies ergibt sich aus der Definition eines Gruppierungssatzes, d. h. einer Gruppe von Spalten, nach denen Sie Ihre Daten gruppieren möchten.

Um zu sehen, wie diese Erweiterungen in der Praxis funktionieren, sollten Sie sich die Angebote des Kurses GROUP BY Erweiterungen ansehen.

Machen Sie sich bereit für Ihr SQL-Vorstellungsgespräch!

Dies war ein Überblick über die häufigsten SQL-Interview-Fragen, die sich auf die GROUP BY -Klausel beziehen.

GROUP BY ist ein wichtiges Konzept. Wenn Sie es nicht wie eine zweite Natur verwenden, werden Sie im Vorstellungsgespräch nicht überzeugen können. Dieser Artikel vermittelt Ihnen ein gutes Gefühl dafür, was Sie erwarten können.

Aber es reicht nicht aus, nur die Konzepte zu kennen. Sie müssen auch üben, und üben bedeutet, dass Sie eine Menge Code schreiben müssen, indem Sie die GROUP BY verwenden. SQL für Anfänger und Erstellen einfacher SQL-Berichte Kurse bieten Ihnen eine strukturierte Möglichkeit, genau das zu tun!