Calcularea sumei populației pe state
Pentru a evita confuzia cu numele coloanelor din rezultatul interogării, cum ar fi count_1, putem folosi metoda .label() pentru a atribui un nume coloanei rezultate. Aceasta se adaugă la metoda funcției pe care o folosim, iar argumentul său este numele pe care dorim să îl utilizăm.
Putem combina func.sum() cu .group_by() pentru a obține suma populației pe State și putem folosi metoda label() pentru a denumi rezultatul.
De asemenea, putem crea expresia func.sum() înainte de a o folosi în instrucțiunea select. Procedăm la fel ca în interiorul instrucțiunii select și stocăm rezultatul într-o variabilă. Apoi folosim acea variabilă în instrucțiunea select, acolo unde ar fi fost în mod normal func.sum().
Acest exercițiu face parte din cursul
Introducere în baze de date în Python
Instrucțiuni pentru exercițiu
- Importă
funcdinsqlalchemy. - Construiește o expresie pentru a calcula suma valorilor din câmpul
pop2008, etichetată ca'population'. - Construiește o instrucțiune select pentru a obține valoarea câmpului
stateși suma valorilor dinpop2008. - Grupează instrucțiunea după
statefolosind metoda.group_by(). - Execută
stmtfolosindconnectionpentru a obține numărul de înregistrări și stochează rezultatele înresults. - Afișează cheile/numele coloanelor din rezultatele returnate folosind
results[0].keys().
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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(____)