Pular para o conteúdo

Cebraspe · Banco do Estado do Rio Grande do Sul S.A. (BANRISUL) 2025

Questão 59 — Banco de Dados: SQL — Funções de Janela

Banco de Dados SQL — Funções de Janela

Cebraspe 2025

Banco do Estado do Rio Grande do Sul S.A. (BANRISUL) · Técnico em Tecnologia da Informação II — Área 1: Administração de Banco de Dados

Gabarito disponível

Considerando que, em um sistema de vendas, haja a tabela de nome vendas_completo(vendedor, regiao, valor), em que cada linha registre uma venda feita por determinado vendedor em sua região, assinale a opção em que é corretamente apresentada a consulta SQL que, sem usar JOIN, apresenta como resultado exatamente as seguintes quatro colunas: vendedor; regiao; total_vendas, correspondente à soma de valor por vendedor; e ranking_regiao, de modo que empates estejam na mesma posição e “pulem” postos.
Selecione uma alternativa

Resolução comentada

Consulta com GROUP BY e RANK() sobre SUM(valor) produz o resultado pedido.

A soma por vendedor/região é obtida com GROUP BY vendedor, regiao, e RANK() OVER (PARTITION BY regiao ORDER BY SUM(valor) DESC) classifica dentro da região, com empates na mesma posição e salto de posições (característica do RANK). Funções de janela são avaliadas após o agrupamento, então é válido usar SUM(valor) no ORDER BY.

Análise das alternativas

A) Funciona sintaticamente em alguns SGBDs, mas usa SUM como janela aninhada em outra janela, o que é inválido/inadequado e depende de DISTINCT. C) Usa DENSE_RANK (não pula postos) e mistura GROUP BY com janelas sem agregar. D) Usa ROW_NUMBER (sem empates) e PARTITION BY só vendedor. E) Usa ROW_NUMBER, que não atribui a mesma posição em empates.

Referência: SQL – funções de janela RANK(), DENSE_RANK(), ROW_NUMBER().

Resolução comentada do VaiConcursos.

Ver gabarito

Gabarito: B

Fonte: Gabarito preliminar: Gabarito oficial definitivo — Conhecimentos Específicos — Área 1