Kom igångKom igång gratis

Använda funktioner och group_by med hierarkisk data

Det är också vanligt att vilja aggregera data som finns i en hierarkisk tabell. Vid sådan aggregering är det viktigt att hålla koll på vilket alias du använder för group_by och vilken tabell du använder för funktionen.

Här är din uppgift att räkna antalet anställda per chef.

Den här övningen är en del av kursen

Introduktion till databaser i Python

Visa kurs

Övningsinstruktioner

  • Spara ett alias för tabellen employees som managers.
  • Bygg en fråga som väljer kolumnen name från tabellen managers samt antalet anställda för varje chef. Funktionen func.count() har importerats och kommer vara användbar! Använd den för att räkna kolumnen id i tabellen employees.
  • Använd en .where()-klausul för att filtrera posterna där kolumnen id i tabellen managers är lika med kolumnen mgr i tabellen employees.
  • Gruppera frågan efter kolumnen name i tabellen managers.
  • Kör satsen och lagra alla resultat. Skriv ut namnen på cheferna och deras anställda. Den koden är redan skriven, så skicka in svaret och ta en titt på resultaten!

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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

Redigera och kör kod