Výpočet součtu obyvatelstva podle státu
Abychom se vyhnuli záměně s názvy sloupců ve výsledcích dotazu, jako je například count_1, můžeme použít metodu .label() a sloupci přiřadit vlastní název. Ten připojíme k metodě, kterou právě používáme, a jako argument zadáme požadovaný název.
Kombinací func.sum() a .group_by() získáme součet obyvatelstva za každý State a pomocí metody label() výstupní sloupec pojmenujeme.
Výraz func.sum() můžeme také sestavit ještě před použitím v příkazu select. Postupujeme stejně jako při přímém zápisu do příkazu select a výsledek uložíme do proměnné. Tu pak v příkazu select použijeme místo func.sum().
Toto cvičení je součástí kurzu
Introduction to Databases in Python
Pokyny k cvičení
- Importuj
funczsqlalchemy. - Vytvoř výraz pro výpočet součtu hodnot v poli
pop2008s popiskem'population'. - Sestav příkaz select, který načte hodnotu pole
statea součet hodnot vpop2008. - Seskup příkaz podle
statepomocí metody.group_by(). - Spusť
stmtpřesconnection, ulož výsledky doresults. - Vypiš názvy klíčů/sloupců vrácených výsledků pomocí
results[0].keys().
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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(____)