CommencezCommencez gratuitement

Déterminer la somme de la population par État

Pour éviter toute confusion avec des noms de colonnes de résultat de requête comme count_1, on peut utiliser la méthode .label() pour nommer la colonne résultante. Ce nom est ajouté à la méthode de fonction que nous utilisons, et son argument est le nom que nous voulons donner.

Nous pouvons associer func.sum() à .group_by() pour obtenir la somme de la population par State et utiliser la méthode label() pour nommer le résultat.

Nous pouvons aussi créer l'expression func.sum() avant de l'employer dans l'instruction select. On procède de la même façon que si on l'écrivait directement dans l'instruction select, puis on l'enregistre dans une variable. Ensuite, on utilise cette variable dans l'instruction select à l'endroit où func.sum() se trouverait normalement.

Cette activité fait partie du cours

Introduction aux bases de données en Python

Voir le cours

Instructions de l’exercice

  • Importez func depuis sqlalchemy.
  • Construisez une expression pour calculer la somme des valeurs du champ pop2008 étiquetée 'population'.
  • Construisez une instruction select pour obtenir la valeur du champ state et la somme des valeurs de pop2008.
  • Regroupez l'instruction par state à l'aide de la méthode .group_by().
  • Exécutez stmt à l'aide de connection pour obtenir le total et enregistrez les résultats dans results.
  • Affichez les clés/noms de colonnes des résultats retournés avec results[0].keys().

Exercice interactif pratique

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

# 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(____)
Modifier et exécuter le code