Folosirea funcțiilor și group_by cu date ierarhice
O operațiune frecventă este agregarea datelor dintr-un tabel ierarhic. Atunci când faci agregări, trebuie să fii atent la ce alias folosești pentru group_by și la ce tabel folosești pentru funcție.
În acest exercițiu, obiectivul tău este să obții numărul de angajați pentru fiecare manager.
Acest exercițiu face parte din cursul
Introducere în baze de date în Python
Instrucțiuni pentru exercițiu
- Salvează un alias al tabelului
employeescamanagers. - Construiește o interogare care să selecteze coloana
namedin tabelulmanagersși numărul de angajați ai acestora. Funcțiafunc.count()a fost deja importată și îți va fi utilă! Folosește-o pentru a număra coloanaiddin tabelulemployees. - Folosind o clauză
.where(), filtrează înregistrările în care coloanaiddin tabelulmanagerseste egală cu coloanamgrdin tabelulemployees. - Grupează interogarea după coloana
namedin tabelulmanagers. - Execută instrucțiunea și stochează toate rezultatele. Afișează numele managerilor și numărul angajaților lor. Acest cod a fost deja scris, deci trimite răspunsul și verifică rezultatele!
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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)