CommencerCommencer gratuitement

Compter des données distinctes

Comme mentionné dans la vidéo, le module func de SQLAlchemy donne accès aux fonctions SQL intégrées, qui peuvent rendre des opérations comme le comptage et la somme plus rapides et plus efficaces.

Dans la vidéo, Jason a utilisé func.sum() pour obtenir la somme de la colonne pop2008 de census, comme ci-dessous :

select([func.sum(census.columns.pop2008)])

Si, à la place, vous voulez compter le nombre de valeurs dans pop2008, vous pouvez utiliser func.count() ainsi :

select([func.count(census.columns.pop2008)])

De plus, si vous souhaitez uniquement compter les valeurs distinctes de pop2008, vous pouvez utiliser la méthode .distinct() :

select([func.count(census.columns.pop2008.distinct())])

Dans cet exercice, vous allez vous entraîner à utiliser func.count() et .distinct() pour obtenir le nombre d’États distincts dans census.

Jusqu’ici, vous avez vu .fetchall(), .fetchmany() et .first() utilisées sur un ResultProxy pour récupérer les résultats. ResultProxy possède aussi une méthode appelée .scalar() pour obtenir uniquement la valeur d’une requête qui ne renvoie qu’une seule ligne et une seule colonne.

C’est très utile lorsque vous interrogez uniquement un total ou un comptage.

Cet exercice fait partie du cours

Introduction aux bases de données en Python

Afficher le cours

Instructions

  • Construisez une instruction select pour compter les valeurs distinctes du champ state de census.
  • Exécutez stmt pour obtenir le comptage et stockez le résultat dans distinct_state_count.
  • Affichez la valeur de distinct_state_count.

Exercice interactif pratique

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

# Build a query to count the distinct states values: stmt
stmt = select([____])

# Execute the query and store the scalar result: distinct_state_count
distinct_state_count = connection.execute(____).scalar()

# Print the distinct_state_count
print(____)
Modifier et exécuter le code