Determinare la somma della popolazione per stato
Per evitare confusione con nomi di colonne del Risultato della query come count_1, possiamo usare il metodo .label() per assegnare un nome alla colonna risultante. Questo metodo si aggiunge alla funzione che stiamo usando e il suo argomento è il nome che vogliamo assegnare.
Possiamo abbinare func.sum() a .group_by() per ottenere la somma della popolazione per State e usare il metodo label() per dare un nome all'output.
Possiamo anche creare l'espressione func.sum() prima di usarla nella select. La costruiamo nello stesso modo in cui faremmo all'interno della select e la salviamo in una variabile. Poi usiamo quella variabile nella select dove normalmente andrebbe func.sum().
Questo esercizio fa parte del corso
Introduzione ai database in Python
Istruzioni dell'esercizio
- Importa
funcdasqlalchemy. - Crea un'espressione per calcolare la somma dei valori nel campo
pop2008etichettata come'population'. - Crea una select per ottenere il valore del campo
statee la somma dei valori inpop2008. - Raggruppa l'istruzione per
stateusando un metodo.group_by(). - Esegui
stmtusandoconnectionper ottenere il conteggio e salva i risultati comeresults. - Stampa le chiavi/nomi colonna dei risultati restituiti usando
results[0].keys().
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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(____)