การเรียงลำดับตามหลายคอลัมน์
เราสามารถส่งอาร์กิวเมนต์หลายตัวให้กับเมธอด .order_by() เพื่อเรียงลำดับตามหลายคอลัมน์ได้ นอกจากนี้ยังสามารถกำหนดให้เรียงจากน้อยไปมากหรือมากไปน้อยในแต่ละคอลัมน์ได้อีกด้วย คอลัมน์ใน .order_by() จะถูกเรียงลำดับจากซ้ายไปขวา กล่าวคือ คอลัมน์แรกจะถูกเรียงลำดับอย่างสมบูรณ์ก่อน จากนั้นในกลุ่มค่าที่เหมือนกันของคอลัมน์แรก จึงจะเรียงลำดับตามคอลัมน์ถัดไปใน .order_by() กระบวนการนี้จะดำเนินต่อไปจนกว่าทุกคอลัมน์ใน .order_by() จะถูกเรียงลำดับครบ
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Python เบื้องต้นสำหรับฐานข้อมูล
คำแนะนำการฝึกหัด
- เลือกข้อมูลทุกแถวของคอลัมน์
stateและageจากตารางcensus - ใช้
.order_by()เพื่อเรียงลำดับคอลัมน์stateจากน้อยไปมาก และคอลัมน์ageจากมากไปน้อย (หมายเหตุ:descถูก import ไว้แล้ว) - รัน
stmtโดยใช้เมธอด.execute()กับconnectionและดึงผลลัพธ์ทั้งหมดด้วย.fetchall() - แสดงผลลัพธ์ 20 รายการแรก
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Build a query to select state and age: stmt
stmt = select([____, ____])
# Append order by to ascend by state and descend by age
stmt = stmt.order_by(____, ____)
# Execute the statement and store all the records: results
results = ____
# Print the first 20 results
print(____)