Determinando a soma da população por estado
Para evitar confusão com nomes de colunas do Resultado da consulta como count_1, podemos usar o método .label() para fornecer um nome à coluna resultante. Ele é anexado ao método de função que estamos usando, e seu argumento é o nome que queremos usar.
Podemos combinar func.sum() com .group_by() para obter a soma da população por State e usar o método label() para nomear a saída.
Também podemos criar a expressão func.sum() antes de usá-la na instrução select. Fazemos do mesmo jeito que faríamos dentro da instrução select e a armazenamos em uma variável. Depois, usamos essa variável na instrução select onde normalmente estaria func.sum().
Este exercício faz parte do curso
Introdução a Bancos de Dados em Python
Instruções do exercício
- Importe
funcdesqlalchemy. - Construa uma expressão para calcular a soma dos valores no campo
pop2008, rotulada como'population'. - Construa uma instrução select para obter o valor do campo
statee a soma dos valores empop2008. - Agrupe a instrução por
stateusando um método.group_by(). - Execute
stmtusando aconnectionpara obter a contagem e armazene os resultados comoresults. - Imprima as chaves/nomes das colunas dos resultados retornados usando
results[0].keys().
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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(____)