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
Instrucciones del ejercicio
- Construye una sentencia
selectpara contar los valores distintos del campostatedecensus. - Ejecuta
stmtpara obtener el recuento y guarda el resultado endistinct_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(____)