Funkcje i group_by w danych hierarchicznych
Agregowanie danych z tabel hierarchicznych to częste zadanie w praktyce. Wymaga ono starannego doboru aliasów przy grupowaniu oraz odpowiedniej tabeli przy wywołaniu funkcji.
Twoim zadaniem jest zliczenie pracowników przypisanych do każdego menedżera.
To ćwiczenie jest częścią kursu
Wprowadzenie do baz danych w Pythonie
Instrukcje do ćwiczenia
- Zapisz alias tabeli
employeesjakomanagers. - Zbuduj zapytanie, które wybiera kolumnę
namez tabelimanagersoraz liczbę przypisanych do nich pracowników. Przyda się zaimportowana funkcjafunc.count()– użyj jej do zliczenia kolumnyidw tabeliemployees. - Za pomocą klauzuli
.where()odfiltruj rekordy, w których kolumnaidtabelimanagersjest równa kolumniemgrtabeliemployees. - Pogrupuj zapytanie według kolumny
nametabelimanagers. - Wykonaj zapytanie i zapisz wszystkie wyniki. Wypisz nazwy menedżerów wraz z liczbą ich pracowników. Ten fragment kodu jest już gotowy – prześlij odpowiedź i sprawdź wyniki!
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)