IniziaInizia gratis

Sfruttare funzioni e group_by con dati gerarchici

È anche comune voler aggregare dati presenti in una tabella gerarchica. L'aggregazione dei dati richiede attenzione a quale alias usi per eseguire i group_by e quale tabella usi per la funzione.

Qui il tuo compito è ottenere il conteggio dei dipendenti per ciascun manager.

Questo esercizio fa parte del corso

Introduzione ai database in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Salva un alias della tabella employees come managers.
  • Crea una query per selezionare la colonna name della tabella managers e il conteggio del numero dei loro dipendenti. La funzione func.count() è stata importata e sarà utile! Usala per contare la colonna id della tabella employees.
  • Usando una clausola .where(), filtra i record in cui la colonna id della tabella managers e la colonna mgr della tabella employees sono uguali.
  • Raggruppa la query per la colonna name della tabella managers.
  • Esegui l'istruzione e salva tutti i risultati. Stampa i nomi dei manager e i rispettivi dipendenti. Questo codice è già stato scritto, quindi invia la risposta e guarda i risultati!

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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

Modifica ed esegui il codice