การคำนวณค่าในคิวรี

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

Jason Myers

Co-Author of Essential SQLAlchemy and Software Engineer

ตัวดำเนินการทางคณิตศาสตร์

  • การบวก +
  • การลบ -
  • การคูณ *
  • การหาร /
  • โมดูลัส %
  • ทำงานแตกต่างกันตามชนิดข้อมูล
Python เบื้องต้นสำหรับฐานข้อมูล

การคำนวณผลต่าง

stmt = select([census.columns.age,           
        (census.columns.pop2008 -
        census.columns.pop2000).label('pop_change')
    ])

stmt = stmt.group_by(census.columns.age) stmt = stmt.order_by(desc('pop_change'))
stmt = stmt.limit(5)
results = connection.execute(stmt).fetchall() print(results)
[(61, 52672), (85, 51901), (54, 50808), (58, 45575),
(60, 44915)]
Python เบื้องต้นสำหรับฐานข้อมูล

คำสั่ง case

  • ใช้จัดการข้อมูลแตกต่างกันตามเงื่อนไข
  • รับรายการเงื่อนไขที่ต้องการตรวจสอบและคอลัมน์ที่จะคืนค่าเมื่อตรงเงื่อนไข
  • รายการเงื่อนไขปิดท้ายด้วย else เพื่อกำหนดการทำงานเมื่อไม่มีเงื่อนไขใดตรง
Python เบื้องต้นสำหรับฐานข้อมูล

ตัวอย่างคำสั่ง case

from sqlalchemy import case

stmt = select([ func.sum( case([ (census.columns.state == 'New York', census.columns.pop2008) ], else_=0))])
results = connection.execute(stmt).fetchall() print(results)
[(19465159,)]
Python เบื้องต้นสำหรับฐานข้อมูล

คำสั่ง cast

  • แปลงข้อมูลเป็นชนิดอื่น
  • มีประโยชน์สำหรับการแปลง...
    • จำนวนเต็มเป็น float สำหรับการหาร
    • สตริงเป็นวันที่และเวลา
  • รับคอลัมน์หรือนิพจน์ และชนิดข้อมูลเป้าหมาย
Python เบื้องต้นสำหรับฐานข้อมูล

ตัวอย่างการคำนวณเปอร์เซ็นต์

from sqlalchemy import case, cast, Float

stmt = select([ (func.sum( case([ (census.columns.state == 'New York', census.columns.pop2008) ], else_=0)) / cast(func.sum(census.columns.pop2008), Float) * 100).label('ny_percent')])
results = connection.execute(stmt).fetchall() print(results)
[(Decimal('6.4267619765'),)]
Python เบื้องต้นสำหรับฐานข้อมูล

มาฝึกกันเถอะ!

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

Preparing Video For Download...