Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Zapisz alias tabeli employees jako managers.
  • Zbuduj zapytanie, które wybiera kolumnę name z tabeli managers oraz liczbę przypisanych do nich pracowników. Przyda się zaimportowana funkcja func.count() – użyj jej do zliczenia kolumny id w tabeli employees.
  • Za pomocą klauzuli .where() odfiltruj rekordy, w których kolumna id tabeli managers jest równa kolumnie mgr tabeli employees.
  • Pogrupuj zapytanie według kolumny name tabeli managers.
  • 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)

Edytuj i uruchom kod