Začněte nyníZačněte zdarma

Výpočet rozdílu mezi dvěma sloupci

Součástí dotazů jsou často matematické operace – například výpočet změny počtu obyvatel v letech 2000 až 2008. Pro numerické hodnoty fungují operátory v SQLAlchemy stejně jako v Pythonu.

Můžeš využít sčítání (+), odčítání (-), násobení (*), dělení (/) a modulo (%). Pozor: u nečíselných typů sloupců se mohou chovat jinak.

Teď najdeme 5 států s největším růstem počtu obyvatel mezi lety 2000 a 2008.

Toto cvičení je součástí kurzu

Introduction to Databases in Python

Zobrazit kurz

Pokyny k cvičení

  • Definuj select dotaz stmt, který vrátí:
    • i) Sloupec se státem z tabulky census (census.columns.state).
    • ii) Rozdíl v počtu obyvatel mezi rokem 2008 (census.columns.pop2008) a rokem 2000 (census.columns.pop2000) s označením 'pop_change'.
  • Seskup dotaz podle census.columns.state.
  • Seřaď výsledky podle změny počtu obyvatel ('pop_change') sestupně – předej funkci desc('pop_change').
  • Pomocí metody .limit() na předchozím dotazu omez výsledky na 5 záznamů.
  • Proveď dotaz a načti záznamy pomocí fetchall().
  • Kód pro výpis výsledků je už připravený. Odešli odpověď a podívej se na výsledky!

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# Build query to return state names by population difference from 2008 to 2000: stmt
stmt = select([____, (____-____).label(____)])

# Append group by for the state: stmt_grouped
stmt_grouped = stmt.group_by(____)

# Append order by for pop_change descendingly: stmt_ordered
stmt_ordered = stmt_grouped.order_by(____)

# Return only 5 results: stmt_top5
stmt_top5 = ____

# Use connection to execute stmt_top5 and fetch all results
results = connection.execute(____).fetchall()

# Print the state and population change for each record
for result in results:
    print('{}:{}'.format(result.state, result.pop_change))
Upravit a spustit kód