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

การใช้ฟังก์ชันและ group_by กับข้อมูลแบบลำดับชั้น

การรวมข้อมูลที่อยู่ในตารางแบบลำดับชั้นเป็นสิ่งที่พบได้บ่อย การทำเช่นนี้ต้องระมัดระวังในการเลือก alias ที่ใช้สำหรับ group_by และตารางที่ใช้กับฟังก์ชัน

ในแบบฝึกหัดนี้ ให้นับจำนวนพนักงานของผู้จัดการแต่ละคน

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

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

ดูคอร์ส

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

  • บันทึก alias ของตาราง employees ในชื่อ managers
  • สร้างคิวรีเพื่อเลือกคอลัมน์ name ของตาราง managers และจำนวนพนักงานที่อยู่ภายใต้การดูแล โดยสามารถใช้ฟังก์ชัน func.count() ที่ import ไว้แล้วเพื่อนับคอลัมน์ id ของตาราง employees
  • ใช้คำสั่ง .where() เพื่อกรองเฉพาะระเบียนที่คอลัมน์ id ของตาราง managers มีค่าเท่ากับคอลัมน์ mgr ของตาราง employees
  • จัดกลุ่มคิวรีตามคอลัมน์ name ของตาราง managers
  • รันคำสั่งและเก็บผลลัพธ์ทั้งหมด แล้วพิมพ์ชื่อผู้จัดการพร้อมจำนวนพนักงาน โค้ดส่วนนี้เขียนไว้ให้แล้ว กด ส่งคำตอบ เพื่อดูผลลัพธ์ได้เลย

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

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

# Make an alias of the employees table: managers
managers = ____

# Build a query to select names of managers and counts of their employees: stmt
stmt = select([____, func.count(____)])

# Append a where clause that ensures the manager id and employee mgr are equal
stmt_matched = stmt.____

# Group by Managers Name
stmt_grouped = stmt_matched.group_by(____)

# Execute statement: results
results = connection.execute(stmt_grouped).fetchall()

# print manager
for record in results:
    print(record)

แก้ไขและรันโค้ด