การคำนวณผลรวมประชากรแยกตามรัฐ
เพื่อหลีกเลี่ยงความสับสนกับชื่อคอลัมน์ในผลลัพธ์ของคิวรี เช่น count_1 เราสามารถใช้เมธอด .label() เพื่อกำหนดชื่อให้กับคอลัมน์ผลลัพธ์ได้ โดยต่อท้ายเมธอดฟังก์ชันที่ใช้อยู่ และระบุชื่อที่ต้องการเป็น argument
เราสามารถใช้ func.sum() ร่วมกับ .group_by() เพื่อคำนวณผลรวมประชากรแยกตาม State และใช้เมธอด label() เพื่อตั้งชื่อผลลัพธ์
นอกจากนี้ ยังสามารถสร้าง expression ของ func.sum() ไว้ก่อนที่จะนำไปใช้ใน select statement ได้ด้วย โดยเขียนในลักษณะเดียวกับที่ใช้ภายใน select statement แล้วเก็บไว้ในตัวแปร จากนั้นนำตัวแปรนั้นไปใส่ใน select statement แทน func.sum() ตามปกติ
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Python เบื้องต้นสำหรับฐานข้อมูล
คำแนะนำการฝึกหัด
- Import
funcจากsqlalchemy - สร้าง expression เพื่อคำนวณผลรวมของค่าในฟิลด์
pop2008โดยตั้งชื่อว่า'population' - สร้าง select statement เพื่อดึงค่าของฟิลด์
stateและผลรวมของค่าในpop2008 - จัดกลุ่ม statement ตาม
stateโดยใช้เมธอด.group_by() - รัน
stmtผ่านconnectionเพื่อรับค่า count และเก็บผลลัพธ์ไว้ในตัวแปรresults - แสดงชื่อ key หรือชื่อคอลัมน์ของผลลัพธ์โดยใช้
results[0].keys()
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import func
____
# Build an expression to calculate the sum of pop2008 labeled as population
pop2008_sum = func.sum(____).label(____)
# Build a query to select the state and sum of pop2008: stmt
stmt = select([____, ____])
# Group stmt by state
stmt = stmt.group_by(____)
# Execute the statement and store all the records: results
results = connection.execute(____).fetchall()
# Print results
print(results)
# Print the keys/column names of the results returned
print(____)