CommencezCommencez gratuitement

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

Il est aussi courant de vouloir regrouper des données provenant d'une table hiérarchique. Pour ce faire, il faut bien choisir quel alias utiliser pour effectuer les group_by et à quelle table appliquer la fonction.

Ici, votre tâche est d'obtenir le nombre d'employés pour chaque gestionnaire.

Cette activité fait partie du cours

Introduction aux bases de données en Python

Voir le cours

Instructions de l’exercice

  • 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 décompte de leurs employés. La fonction func.count() a été importée et vous sera utile ! Servez-vous-en 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 gestionnaires et de leurs employés. Ce code est déjà écrit, alors Soumettre la réponse et examinez les résultats !

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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