Začněte nyníZačněte zdarma

Funkce a group_by s hierarchickými daty

Běžnou potřebou je také agregovat data uložená v hierarchické tabulce. Při agregaci je důležité sledovat, který alias používáš pro group_by a ze které tabulky voláš funkci.

Tvým úkolem je zjistit počet zaměstnanců pro každého manažera.

Toto cvičení je součástí kurzu

Introduction to Databases in Python

Zobrazit kurz

Pokyny k cvičení

  • Ulož alias tabulky employees jako managers.
  • Sestavte dotaz, který vybere sloupec name z tabulky managers a počet jejich zaměstnanců. K tomu se ti bude hodit funkce func.count() — použij ji k počítání sloupce id v tabulce employees.
  • Pomocí klauzule .where() vyfiltruj záznamy, kde se sloupec id tabulky managers rovná sloupci mgr tabulky employees.
  • Seskup výsledky dotazu podle sloupce name tabulky managers.
  • Spusť dotaz a ulož všechny výsledky. Vypiš jména manažerů a počty jejich zaměstnanců. Tento kód už je napsaný — stačí odeslat odpověď a prohlédnout si výsledky!

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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)

Upravit a spustit kód