IniziaInizia gratis

Determinare la percentuale complessiva di donne

È possibile combinare funzioni e operatori in un'unica istruzione select. Queste combinazioni sono molto utili quando vogliamo calcolare percentuali o medie, e possiamo anche usare l'espressione case() per operare sui dati che soddisfano criteri specifici senza influenzare l'intera query. L'espressione case() accetta un elenco di condizioni da verificare e la colonna da restituire se la condizione è soddisfatta, seguita da un else_ se nessuna condizione è soddisfatta. Possiamo racchiudere l'intera espressione in qualsiasi funzione o operazione matematica vogliamo.

Spesso, quando eseguiamo divisioni tra interi, vogliamo ottenere un float. Anche se alcuni database lo fanno automaticamente, puoi usare la funzione cast() per convertire un' espressione in un tipo specifico.

Questo esercizio fa parte del corso

Introduzione ai database in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Importa case, cast e Float da sqlalchemy.
  • Crea un'espressione female_pop2000 per calcolare la popolazione femminile nel 2000. Per farlo:
    • Usa case() dentro func.sum().
    • Il primo argomento di case() è una lista contenente una tupla di
      • i) Un booleano che verifica che census.columns.sex sia uguale a 'F'.
      • ii) La colonna census.columns.pop2000.
    • Il secondo argomento è la condizione else_, che deve essere impostata a 0.
  • Calcola la popolazione totale nel 2000 e usa cast() per convertirla in Float.
  • Crea una query per calcolare la percentuale di donne nel 2000. Per farlo, dividi female_pop2000 per total_pop2000 e moltiplica per 100.
  • Esegui la query e stampa percent_female.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# import case, cast and Float from sqlalchemy
from sqlalchemy import ____, ____, ____

# Build an expression to calculate female population in 2000
female_pop2000 = func.sum(
    ____([
        (____ == ____, ____)
    ], else_=____))

# Cast an expression to calculate total population in 2000 to Float
total_pop2000 = cast(func.sum(____), ____)

# Build a query to calculate the percentage of women in 2000: stmt
stmt = select([____ / ____* 100])

# Execute the query and store the scalar result: percent_female
percent_female = connection.execute(____).scalar()

# Print the percentage
print(____)
Modifica ed esegui il codice