ComenzarEmpieza gratis

Contar datos distintos

Como se mencionó en el vídeo, el módulo func de SQLAlchemy da acceso a funciones SQL integradas que pueden hacer operaciones como contar y sumar de forma más rápida y eficiente.

En el vídeo, Jason usó func.sum() para obtener la suma de la columna pop2008 de census, como se muestra a continuación:

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

Si en cambio quieres contar el número de valores en pop2008, puedes usar func.count() así:

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

Además, si solo quieres contar los valores distintos de pop2008, puedes usar el método .distinct():

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

En este ejercicio, practicarás el uso de func.count() y .distinct() para obtener el recuento del número de estados distintos en census.

Hasta ahora has visto .fetchall(), .fetchmany() y .first() usadas en un ResultProxy para obtener los resultados. ResultProxy también tiene un método llamado .scalar() para obtener únicamente el valor de una consulta que devuelve una sola fila y columna.

Esto puede ser muy útil cuando estás consultando solo un recuento o una suma.

Este ejercicio forma parte del curso

Introducción a las bases de datos en Python

Ver curso

Instrucciones del ejercicio

  • Construye una sentencia select para contar los valores distintos del campo state de census.
  • Ejecuta stmt para obtener el recuento y guarda el resultado en distinct_state_count.
  • Imprime el valor de distinct_state_count.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# 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(____)
Editar y ejecutar código