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
<Kurs>Einführung in Datenbanken mit Python</Kurs>Übungsanweisungen
- 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 praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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)