De bevolkingssom per staat bepalen
Om verwarring te voorkomen met kolomnamen in het queryresultaat zoals count_1, kunnen we de methode .label() gebruiken om de resulterende kolom een naam te geven. Die voeg je toe aan de functiemethode die we gebruiken, met als argument de gewenste naam.
We kunnen func.sum() combineren met .group_by() om de som van de bevolking per State te krijgen en de label()-methode gebruiken om de uitvoer te benoemen.
We kunnen de func.sum()-expressie ook vooraf maken voordat we die in de select-statement gebruiken. Dat doen we op dezelfde manier als binnen de select-statement en slaan we op in een variabele. Daarna gebruiken we die variabele in de select-statement op de plek waar normaal func.sum() zou staan.
Deze oefening maakt deel uit van de cursus
Introductie tot databases in Python
Oefeninstructies
- Importeer
funcuitsqlalchemy. - Bouw een expressie om de som van de waarden in het veld
pop2008te berekenen met het label'population'. - Bouw een select-statement om de waarde van het veld
stateen de som van de waarden inpop2008op te halen. - Groepeer het statement op
statemet een.group_by()-methode. - Voer
stmtuit met deconnectionom de telling op te halen en sla de resultaten op alsresults. - Print de sleutels/kolomnamen van de geretourneerde resultaten met
results[0].keys().
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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(____)