Aproveitando funções e group_bys com dados hierárquicos
Também é comum querer consolidar dados que estão em uma tabela hierárquica. Para consolidar dados, é preciso ter cuidado com qual alias você usa para executar os group_bys e qual tabela você usa para a função.
Aqui, sua tarefa é obter a contagem de funcionários para cada gerente.
Este exercício faz parte do curso
Introdução a Bancos de Dados em Python
Instruções do exercício
- Salve um alias da tabela
employeescomomanagers. - Monte uma consulta para selecionar a coluna
nameda tabelamanagerse a contagem de seus funcionários. A funçãofunc.count()já foi importada e será útil! Use-a para contar a colunaidda tabelaemployees. - Usando uma cláusula
.where(), filtre os registros em que a colunaidda tabelamanagerse a colunamgrda tabelaemployeessejam iguais. - Agrupe a consulta pela coluna
nameda tabelamanagers. - Execute a instrução e armazene todos os resultados. Imprima os nomes dos gerentes e seus funcionários. Esse código já foi escrito, então Enviar a resposta e confira os resultados!
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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)