IniziaInizia gratis

Calcolare la differenza tra due colonne

Spesso, in una query dovrai eseguire operazioni matematiche, ad esempio se vuoi calcolare la variazione della popolazione dal 2000 al 2008. Per le operazioni su numeri, gli operatori in SQLAlchemy funzionano come in Python.

Puoi usare questi operatori per eseguire addizione (+), sottrazione (-), moltiplicazione (*), divisione (/) e modulo (%). Nota: si comportano in modo diverso se usati con colonne non numeriche.

Troviamo ora i 5 stati con la maggior crescita della popolazione tra il 2000 e il 2008.

Questo esercizio fa parte del corso

Introduzione ai database in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Definisci un'istruzione select chiamata stmt per restituire:
    • i) La colonna dello stato della tabella census (census.columns.state).
    • ii) La differenza nel conteggio della popolazione tra il 2008 (census.columns.pop2008) e il 2000 (census.columns.pop2000) etichettata come 'pop_change'.
  • Raggruppa l'istruzione per census.columns.state.
  • Ordina l'istruzione per variazione della popolazione ('pop_change') in ordine decrescente, passando desc('pop_change').
  • Usa il metodo .limit() sull'istruzione precedente per restituire solo 5 record.
  • Esegui l'istruzione e usa fetchall() per ottenere i record.
  • L'istruzione di stampa è già pronta per te. Invia risposta per visualizzare i risultati!

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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))
Modifica ed esegui il codice