MulaiMulai sekarang secara gratis

Menentukan persentase keseluruhan perempuan

Anda dapat menggabungkan fungsi dan operator dalam satu pernyataan select. Kombinasi ini sangat berguna saat kita ingin menghitung persentase atau rata-rata, dan kita juga dapat menggunakan ekspresi case() untuk mengoperasikan data yang memenuhi kriteria tertentu tanpa memengaruhi kueri secara keseluruhan. Ekspresi case() menerima daftar kondisi yang akan dicocokkan dan kolom yang akan dikembalikan jika kondisi cocok, diikuti dengan else_ jika tidak ada kondisi yang cocok. Kita dapat membungkus seluruh ekspresi ini dalam fungsi atau operasi matematika apa pun yang kita inginkan.

Sering kali saat melakukan pembagian bilangan bulat, kita ingin mendapatkan hasil float. Meskipun beberapa database akan melakukannya secara otomatis, Anda dapat menggunakan fungsi cast() untuk mengonversi suatu ekspresi ke tipe tertentu.

Latihan ini adalah bagian dari kursus

Pengantar Basis Data di Python

Lihat Kursus

Petunjuk latihan

  • Impor case, cast, dan Float dari sqlalchemy.
  • Bangun ekspresi female_pop2000 untuk menghitung populasi perempuan pada tahun 2000. Untuk mencapainya:
    • Gunakan case() di dalam func.sum().
    • Argumen pertama case() adalah sebuah daftar yang berisi tuple yang terdiri atas
      • i) Boolean yang memeriksa bahwa census.columns.sex sama dengan 'F'.
      • ii) Kolom census.columns.pop2000.
    • Argumen kedua adalah kondisi else_, yang harus disetel ke 0.
  • Hitung total populasi pada tahun 2000 dan gunakan cast() untuk mengonversinya ke Float.
  • Bangun kueri untuk menghitung persentase perempuan pada tahun 2000. Caranya, bagi female_pop2000 dengan total_pop2000 lalu kalikan dengan 100.
  • Jalankan kueri dan cetak percent_female.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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(____)
Edit dan Jalankan Kode