ПочатиПочніть безкоштовно

Використання функцій і group_by з ієрархічними даними

Часто потрібно агрегувати дані в ієрархічній таблиці. Для цього важливо уважно обирати, який псевдонім використовувати для group_by і до якої таблиці застосовувати функцію.

Ваше завдання — отримати кількість працівників для кожного менеджера.

Ця вправа є частиною курсу

Вступ до баз даних у Python

Переглянути курс

Інструкції до вправи

  • Збережіть псевдонім таблиці employees під назвою managers.
  • Побудуйте запит, щоб вибрати стовпець name з таблиці managers і підрахунок їхніх працівників. Функція func.count() вже імпортована — скористайтеся нею, щоб порахувати стовпець 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)

Редагувати та запускати код