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
Petunjuk latihan
- Impor
case,cast, danFloatdarisqlalchemy. - Bangun ekspresi
female_pop2000untuk menghitung populasi perempuan pada tahun 2000. Untuk mencapainya:- Gunakan
case()di dalamfunc.sum(). - Argumen pertama
case()adalah sebuah daftar yang berisi tuple yang terdiri atas- i) Boolean yang memeriksa bahwa
census.columns.sexsama dengan'F'. - ii) Kolom
census.columns.pop2000.
- i) Boolean yang memeriksa bahwa
- Argumen kedua adalah kondisi
else_, yang harus disetel ke 0.
- Gunakan
- Hitung total populasi pada tahun 2000 dan gunakan
cast()untuk mengonversinya keFloat. - Bangun kueri untuk menghitung persentase perempuan pada tahun 2000. Caranya, bagi
female_pop2000dengantotal_pop2000lalu kalikan dengan100. - 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(____)