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
Istruzioni dell'esercizio
- Salva un alias della tabella
employeescomemanagers. - Crea una query per selezionare la colonna
namedella tabellamanagerse il conteggio del numero dei loro dipendenti. La funzionefunc.count()è stata importata e sarà utile! Usala per contare la colonnaiddella tabellaemployees. - Usando una clausola
.where(), filtra i record in cui la colonnaiddella tabellamanagerse la colonnamgrdella tabellaemployeessono uguali. - Raggruppa la query per la colonna
namedella tabellamanagers. - 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)