Beräkna befolkningssumman per delstat
För att undvika förväxling med kolumnnamn i frågeresultatet, som till exempel count_1, kan vi använda metoden .label() för att ge resultatkolumnen ett eget namn. Den läggs till efter den funktionsmetod vi använder, och argumentet är det namn vi vill använda.
Vi kan kombinera func.sum() med .group_by() för att summera befolkningen per State och använda metoden label() för att namnge utdata.
Vi kan också skapa func.sum()-uttrycket innan vi använder det i select-satsen. Det görs på samma sätt som inuti select-satsen – vi lagrar det i en variabel och använder sedan den variabeln i select-satsen där func.sum() annars skulle stå.
Den här övningen är en del av kursen
Introduktion till databaser i Python
Övningsinstruktioner
- Importera
funcfrånsqlalchemy. - Bygg ett uttryck för att beräkna summan av värdena i fältet
pop2008, med etiketten'population'. - Bygg en select-sats för att hämta värdet i fältet
statesamt summan av värdena ipop2008. - Gruppera satsen efter
statemed hjälp av metoden.group_by(). - Kör
stmtviaconnectionför att hämta antalet och lagra resultaten iresults. - Skriv ut nycklarna/kolumnnamnen för de returnerade resultaten med hjälp av
results[0].keys().
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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(____)