Bắt đầu ngayBắt đầu miễn phí

Tận dụng functions và group_by với dữ liệu phân cấp

Bạn cũng thường sẽ cần tổng hợp (roll up) dữ liệu trong một bảng có cấu trúc phân cấp. Khi tổng hợp dữ liệu, bạn cần cẩn thận chọn đúng bí danh để thực hiện group_by và chọn đúng bảng để áp dụng hàm.

Nhiệm vụ ở đây là đếm số nhân viên theo từng quản lý.

Bài tập này là một phần của khóa học

Nhập môn Cơ sở dữ liệu với Python

Xem khóa học

Hướng dẫn bài tập

  • Lưu một bí danh của bảng employeesmanagers.
  • Xây dựng truy vấn chọn cột name của bảng managers và số lượng nhân viên của họ. Hàm func.count() đã được nhập và sẽ hữu ích! Dùng hàm này để đếm cột id của bảng employees.
  • Dùng mệnh đề .where() để lọc các bản ghi trong đó cột id của bảng managers bằng với cột mgr của bảng employees.
  • Group truy vấn theo cột name của bảng managers.
  • Thực thi câu lệnh và lưu toàn bộ kết quả. In tên các quản lý và số nhân viên của họ. Đoạn mã này đã được viết sẵn nên hãy Gửi câu trả lời để xem kết quả!

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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)

Chỉnh sửa và Chạy Mã