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
Anleitung zur Übung
- Speichere ein Alias der Tabelle
employeesunter dem Namenmanagers. - Baue eine Abfrage, die die Spalte
nameder Tabellemanagersund die Anzahl ihrer Mitarbeitenden auswählt. Die Funktionfunc.count()wurde importiert und ist hier nützlich! Verwende sie, um die Spalteidder Tabelleemployeeszu zählen. - Filtere mit einer
.where()-Klausel die Datensätze, in denen die Spalteidder Tabellemanagersund die Spaltemgrder Tabelleemployeesgleich sind. - Fasse die Abfrage nach der Spalte
nameder Tabellemanagerszusammen (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)