เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การคำนวณร้อยละของผู้หญิงโดยรวม

เราสามารถรวมฟังก์ชันและตัวดำเนินการไว้ใน select statement เดียวกันได้ ซึ่งมีประโยชน์มากเมื่อต้องการคำนวณร้อยละหรือค่าเฉลี่ย นอกจากนี้ยังสามารถใช้นิพจน์ case() เพื่อประมวลผลเฉพาะข้อมูลที่ตรงตามเงื่อนไขที่กำหนด โดยไม่กระทบกับคิวรีโดยรวม นิพจน์ case() รับรายการเงื่อนไขที่ต้องการตรวจสอบและคอลัมน์ที่จะคืนค่าเมื่อเงื่อนไขเป็นจริง ตามด้วย else_ สำหรับกรณีที่ไม่ตรงกับเงื่อนไขใดเลย เราสามารถนำนิพจน์ทั้งหมดนี้ไปใช้ร่วมกับฟังก์ชันหรือการดำเนินการทางคณิตศาสตร์ใดก็ได้

ในการหารจำนวนเต็ม หากต้องการให้ผลลัพธ์เป็นทศนิยม บางฐานข้อมูลจะจัดการให้โดยอัตโนมัติ แต่คุณยังสามารถใช้ฟังก์ชัน cast() เพื่อแปลงนิพจน์ให้เป็นชนิดข้อมูลที่ต้องการได้

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Python เบื้องต้นสำหรับฐานข้อมูล

ดูคอร์ส

คำแนะนำการฝึกหัด

  • Import case, cast และ Float จาก sqlalchemy
  • สร้างนิพจน์ female_pop2000 เพื่อคำนวณจำนวนประชากรผู้หญิงในปี 2000 โดยทำดังนี้:
    • ใช้ case() ภายใน func.sum()
    • อาร์กิวเมนต์แรกของ case() คือรายการที่มี tuple ประกอบด้วย
      • i) นิพจน์บูลีนที่ตรวจสอบว่า census.columns.sex มีค่าเท่ากับ 'F'
      • ii) คอลัมน์ census.columns.pop2000
    • อาร์กิวเมนต์ที่สองคือเงื่อนไข else_ ซึ่งควรกำหนดเป็น 0
  • คำนวณจำนวนประชากรทั้งหมดในปี 2000 และใช้ cast() แปลงค่าให้เป็น Float
  • สร้างคิวรีเพื่อคำนวณร้อยละของผู้หญิงในปี 2000 โดยหาร female_pop2000 ด้วย total_pop2000 แล้วคูณด้วย 100
  • รันคิวรีและแสดงผล percent_female

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# 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(____)
แก้ไขและรันโค้ด