ÎncepețiÎncepe gratuit

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

Vezi cursul

Instrucțiuni pentru exercițiu

  • Salvează un alias al tabelului employees ca managers.
  • Construiește o interogare care să selecteze coloana name din tabelul managers și numărul de angajați ai acestora. Funcția func.count() a fost deja importată și îți va fi utilă! Folosește-o pentru a număra coloana id din tabelul employees.
  • Folosind o clauză .where(), filtrează înregistrările în care coloana id din tabelul managers este egală cu coloana mgr din tabelul employees.
  • Grupează interogarea după coloana name din tabelul managers.
  • 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)

Editează și rulează codul