Calculer le total de population par État
Pour éviter toute confusion avec des noms de colonnes de résultat de requête comme count_1, nous pouvons utiliser la méthode .label() pour nommer la colonne résultante. Elle s’ajoute à la méthode de fonction que nous utilisons, et son argument est le nom souhaité.
Nous pouvons associer func.sum() à .group_by() pour obtenir le total de la population par State et utiliser la méthode label() pour nommer la sortie.
Nous pouvons aussi créer l’expression func.sum() avant de l’utiliser dans l’instruction select. Nous procédons comme nous le ferions à l’intérieur de l’instruction select et la stockons dans une variable, puis nous utilisons cette variable dans l’instruction select à l’endroit où func.sum() serait normalement utilisé.
Cet exercice fait partie du cours
Introduction aux bases de données en Python
Instructions
- Importez
funcdepuissqlalchemy. - Créez une expression pour calculer la somme des valeurs du champ
pop2008avec le libellé'population'. - Créez une instruction select pour récupérer la valeur du champ
stateet la somme des valeurs depop2008. - Regroupez l’instruction par
stateavec la méthode.group_by(). - Exécutez
stmten utilisantconnectionpour obtenir le décompte et stockez les résultats dansresults. - Affichez les clés/noms de colonnes des résultats renvoyés avec
results[0].keys().
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Import func
____
# Build an expression to calculate the sum of pop2008 labeled as population
pop2008_sum = func.sum(____).label(____)
# Build a query to select the state and sum of pop2008: stmt
stmt = select([____, ____])
# Group stmt by state
stmt = stmt.group_by(____)
# Execute the statement and store all the records: results
results = connection.execute(____).fetchall()
# Print results
print(results)
# Print the keys/column names of the results returned
print(____)