ÎncepețiÎncepe gratuit

Calcularea procentului general al femeilor

Este posibil să combini funcții și operatori într-o singură instrucțiune SELECT. Aceste combinații sunt extrem de utile când vrei să calculezi procente sau medii. De asemenea, poți folosi expresia case() pentru a opera asupra datelor care îndeplinesc criterii specifice, fără a afecta interogarea în ansamblu. Expresiile case() acceptă o listă de condiții de verificat și coloana de returnat dacă condiția este îndeplinită, urmată de un else_ în cazul în care nicio condiție nu corespunde. Poți înveli această expresie în orice funcție sau operație matematică dorești.

Atunci când efectuezi împărțiri între numere întregi, de obicei vei dori să obții un rezultat de tip float. Deși unele baze de date fac acest lucru automat, poți folosi funcția cast() pentru a converti o expresie la un anumit tip.

Acest exercițiu face parte din cursul

Introducere în baze de date în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Importă case, cast și Float din sqlalchemy.
  • Construiește o expresie female_pop2000 pentru a calcula populația feminină în anul 2000. Pentru a face acest lucru:
    • Folosește case() în interiorul lui func.sum().
    • Primul argument al lui case() este o listă care conține un tuplu format din:
      • i) O condiție booleană care verifică dacă census.columns.sex este egal cu 'F'.
      • ii) Coloana census.columns.pop2000.
    • Al doilea argument este condiția else_, care trebuie setată la 0.
  • Calculează populația totală în 2000 și folosește cast() pentru a o converti la Float.
  • Construiește o interogare care să calculeze procentul femeilor în 2000. Pentru aceasta, împarte female_pop2000 la total_pop2000 și înmulțește cu 100.
  • Execută interogarea și afișează percent_female.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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(____)
Editează și rulează codul