Calcular la suma de población por estado
Para evitar confusiones con nombres de columnas del resultado de la consulta como count_1, podemos usar el método .label() para darle un nombre a la columna resultante. Este método se añade a la función que estemos usando y su argumento es el nombre que queremos.
Podemos combinar func.sum() con .group_by() para obtener la suma de la población por State y usar el método label() para nombrar la salida.
También podemos crear la expresión func.sum() antes de usarla en la sentencia select. Lo hacemos igual que dentro de la sentencia select y la guardamos en una variable. Luego usamos esa variable en la sentencia select donde normalmente iría func.sum().
Este ejercicio forma parte del curso
Introducción a las bases de datos en Python
Instrucciones del ejercicio
- Importa
funcdesqlalchemy. - Crea una expresión para calcular la suma de los valores del campo
pop2008etiquetada como'population'. - Construye una sentencia select para obtener el valor del campo
statey la suma de los valores depop2008. - Agrupa la sentencia por
stateusando el método.group_by(). - Ejecuta
stmtusandoconnectionpara obtener el recuento y guarda los resultados enresults. - Imprime las claves/nombres de columnas de los resultados devueltos usando
results[0].keys().
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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(____)