Carregando o concurso…
Uma equipe de analistas de dados de uma instituição pública está otimizando um relatório gerencial que utiliza uma Common Table Expression (CTE) recursiva para calcular a hierarquia de unidades administrativas e, simultaneamente, funções de janela para ranquear os servidores por produtividade dentro de cada unidade. O banco de dados é PostgreSQL 14. Considere o seguinte trecho de código:
WITH RECURSIVE hierarquia AS (
SELECT id, nome, id_pai, 1 AS nivel
FROM unidades
WHERE id_pai IS NULL
UNION ALL
SELECT u.id, u.nome, u.id_pai, h.nivel + 1
FROM unidades u
JOIN hierarquia h ON u.id_pai = h.id
),
produtividade AS (
SELECT s.id, s.nome, s.id_unidade, s.produtividade,
ROW_NUMBER() OVER (PARTITION BY s.id_unidade ORDER BY s.produtividade DESC) AS rn,
RANK() OVER (PARTITION BY s.id_unidade ORDER BY s.produtividade DESC) AS rk,
DENSE_RANK() OVER (PARTITION BY s.id_unidade ORDER BY s.produtividade DESC) AS drk,
AVG(s.produtividade) OVER (PARTITION BY s.id_unidade) AS media_unidade
FROM servidores s
)
SELECT h.nome AS unidade, p.nome AS servidor, p.produtividade, p.rn, p.rk, p.drk, p.media_unidade
FROM hierarquia h
JOIN produtividade p ON h.id = p.id_unidade
WHERE p.rn <= 3
ORDER BY h.nivel, h.nome, p.rn;Sobre a execução desse código e os conceitos de CTEs, funções de janela e planos de execução, assinale a alternativa correta.
Selecione uma alternativa pra criar sua conta e salvar o progresso.