นับจำนวนระเบียนตามรัฐ
บ่อยครั้งที่เราต้องการนับจำนวนระเบียนที่มีค่าเฉพาะเจาะจงในคอลัมน์อื่น เมธอด .group_by() ช่วยตอบคำถามประเภทนี้ได้ โดยสามารถส่งคอลัมน์เข้าไปใน .group_by() แล้วใช้ร่วมกับฟังก์ชัน aggregate เช่น sum() หรือ count() เช่นเดียวกับเมธอด .order_by() .group_by() รับคอลัมน์ได้หลายคอลัมน์เป็น argument
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Python เบื้องต้นสำหรับฐานข้อมูล
คำแนะนำการฝึกหัด
- นำเข้า
funcจากsqlalchemy - สร้างคำสั่ง
selectเพื่อดึงค่าของฟิลด์ state และนับจำนวนค่าในฟิลด์ageแล้วเก็บไว้ในstmt - ใช้เมธอด
.group_by()เพื่อจัดกลุ่มคำสั่งตามคอลัมน์state - รัน
stmtผ่านconnectionเพื่อดึงผลการนับ แล้วเก็บผลลัพธ์ไว้ในresults - แสดง key หรือชื่อคอลัมน์ของผลลัพธ์โดยใช้
results[0].keys()
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import func
# Build a query to select the state and count of ages by state: 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(____)