CommencerCommencer gratuitement

Exploiter les fonctions et les group_by avec des données hiérarchiques

Il est également courant de vouloir agréger des données dans une table hiérarchique. Pour cela, il faut faire attention à l’alias utilisé pour les group_by et à la table appliquée à la fonction.

Ici, votre objectif est d’obtenir le nombre d’employés pour chaque responsable.

Cet exercice fait partie du cours

Introduction aux bases de données en Python

Afficher le cours

Instructions

  • Enregistrez un alias de la table employees sous le nom managers.
  • Construisez une requête pour sélectionner la colonne name de la table managers et le nombre de leurs employés. La fonction func.count() a été importée et vous sera utile ! Utilisez-la pour compter la colonne id de la table employees.
  • À l’aide d’une clause .where(), filtrez les enregistrements où la colonne id de la table managers est égale à la colonne mgr de la table employees.
  • Regroupez la requête par la colonne name de la table managers.
  • Exécutez l’instruction et stockez tous les résultats. Affichez le nom des responsables et leurs employés. Ce code est déjà écrit, alors Soumettre la réponse et consultez les résultats !

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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

Modifier et exécuter le code