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
Instructions de l’exercice
- Enregistrez un alias de la table
employeessous le nommanagers. - Construisez une requête pour sélectionner la colonne
namede la tablemanagerset le décompte de leurs employés. La fonctionfunc.count()a été importée et vous sera utile ! Servez-vous-en pour compter la colonneidde la tableemployees. - À l'aide d'une clause
.where(), filtrez les enregistrements où la colonneidde la tablemanagersest égale à la colonnemgrde la tableemployees. - Regroupez la requête par la colonne
namede la tablemanagers. - 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)