Aan de slagGa gratis aan de slag

Functies en group_bys benutten met hiërarchische data

Het is ook gebruikelijk om data in een hiërarchische tabel te willen aggregeren. Data aggregeren vereist dat je goed oplet welke alias je gebruikt voor de group_bys en welke tabel je gebruikt voor de functie.

Hier ga je het aantal medewerkers per manager ophalen.

Deze oefening maakt deel uit van de cursus

Introductie tot databases in Python

Cursus bekijken

Oefeninstructies

  • Sla een alias van de tabel employees op als managers.
  • Bouw een query die de kolom name van de tabel managers selecteert en het aantal van hun medewerkers. De functie func.count() is geïmporteerd en komt van pas! Gebruik die om de kolom id van de tabel employees te tellen.
  • Filter met een .where()-clausule de records waar de kolom id van de tabel managers gelijk is aan de kolom mgr van de tabel employees.
  • Groepeer de query op de kolom name van de tabel managers.
  • Voer het statement uit en sla alle resultaten op. Print de namen van de managers en hun medewerkers. Deze code is al geschreven, dus Antwoord verzenden en bekijk de resultaten!

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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

Code bewerken en uitvoeren