LoslegenKostenlos loslegen

Funktionen und group_bys bei hierarchischen Daten nutzen

Oft möchtest du Daten zusammenfassen, die in einer hierarchischen Tabelle vorliegen. Beim Aggregieren ist es wichtig, genau zu beachten, welches Alias du für die group_bys verwendest und welche Tabelle du für die Funktion nutzt.

Deine Aufgabe ist es hier, die Anzahl der Mitarbeitenden pro Manager zu ermitteln.

Diese Übung ist Teil des Kurses

Einführung in Datenbanken mit Python

Kurs anzeigen

Anleitung zur Übung

  • Speichere ein Alias der Tabelle employees unter dem Namen managers.
  • Baue eine Abfrage, die die Spalte name der Tabelle managers und die Anzahl ihrer Mitarbeitenden auswählt. Die Funktion func.count() wurde importiert und ist hier nützlich! Verwende sie, um die Spalte id der Tabelle employees zu zählen.
  • Filtere mit einer .where()-Klausel die Datensätze, in denen die Spalte id der Tabelle managers und die Spalte mgr der Tabelle employees gleich sind.
  • Fasse die Abfrage nach der Spalte name der Tabelle managers zusammen (GROUP BY).
  • Führe das Statement aus und speichere alle Ergebnisse. Gib die Namen der Manager und die ihrer Mitarbeitenden aus. Dieser Code ist bereits geschrieben – also Antwort senden und schau dir die Ergebnisse an!

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Make an alias of the employees table: managers
managers = ____

# Build a query to select names of managers and counts of their employees: stmt
stmt = select([____, func.count(____)])

# Append a where clause that ensures the manager id and employee mgr are equal
stmt_matched = stmt.____

# Group by Managers Name
stmt_grouped = stmt_matched.group_by(____)

# Execute statement: results
results = connection.execute(stmt_grouped).fetchall()

# print manager
for record in results:
    print(record)

Code bearbeiten und ausführen