Pular para o conteúdo principal

Questão de Banco de Dados — Consultas e Comandos em SQL — VUNESP 2023

Banco de DadosConsultas e Comandos em SQL
Código
vu195948
Banca
VUNESP
Órgão
CIJUN
Ano
2023
Cargo
Ana ( )
Um analista de dados da prefeitura deseja calcular a média da diferença entre o valor empenhado e o valor pago das despesas. Para isso, encontrou no banco de dados as duas tabelas: Para realizar o cálculo elaborou a seguinte consulta SQL:   SELECT AVG(diferenca) FROM (     SELECT tabela_pago.numero_empenho     , tabela_empenhado.valor - tabela_pago.valor AS     diferenca FROM tabela_pago     INNER JOIN tabela_empenhado         ON tabela_pago.NUMERO_EMPENHO =         tabela_empenhado.NUMERO_EMPENHO ) AS subquery;   Ao executar a consulta, o resultado numérico obtido pelo analista foi (considerando até a terceira casa decimal):Imagem associada para resolução da questão
  1. Anull
  2. B542.183
  3. C813.275
  4. D9 126.94
  5. E7 654.75
Revelar gabarito e comentário

GabaritoC — 813.275

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Resolução

Gabarito: letra C — a conta chega a 813.275 — alternativa C.

A ideia por trás

A função AVG é uma função de agregação do SQL que calcula a média aritmética de um conjunto de valores numéricos, ignorando valores nulos. Ela é usada para resumir dados, como obter a média de uma coluna. O INNER JOIN é um tipo de junção que combina registros de duas tabelas apenas quando a condição especificada na cláusula ON é verdadeira, retornando somente as linhas que têm correspondência em ambas as tabelas.

A consulta usa uma subconsulta para calcular a diferença entre o valor empenhado e o valor pago para cada empenho que existe nas duas tabelas (INNER JOIN). A subconsulta gera uma tabela temporária com uma coluna 'diferenca'. Em seguida, a consulta externa aplica AVG(diferenca) para obter a média dessas diferenças. O INNER JOIN garante que apenas os empenhos presentes nas duas tabelas sejam considerados, excluindo aqueles que estão apenas em uma delas.

Esta questão cobra a interpretação do resultado de uma consulta SQL que combina INNER JOIN e AVG. O candidato precisa entender o que a consulta faz e identificar o valor correto exibido na figura, prestando atenção à formatação dos números.

O que a questão dá

  • tabela_pago com colunas NUMERO_EMPENHO e valor

  • tabela_empenhado com colunas NUMERO_EMPENHO e valor

  • consulta SQL com INNER JOIN e AVG

O que queremos: o resultado numérico da consulta, considerando até a terceira casa decimal

Passo 1 — Calcular a diferença para cada empenho

A consulta precisa de um valor numérico para cada empenho antes de tirar a média. O INNER JOIN combina as linhas das duas tabelas que têm o mesmo NUMERO_EMPENHO, e a subconsulta calcula a diferença entre o valor empenhado e o valor pago para cada uma dessas combinações. Sem esse passo, não há o que agregar.

Por que esta fórmula: A expressão 'tabela_empenhado.valor - tabela_pago.valor' é a subtração direta dos valores das duas colunas, que é exatamente a diferença que se quer medir.

diferenca=valorempenhadovalorpagodiferenca = valor_{empenhado} - valor_{pago}

De onde vem cada valor: valorempenhadovalor_{empenhado} = enunciado: coluna valor da tabela_empenhado · valorpagovalor_{pago} = enunciado: coluna valor da tabela_pago

NÃO CAIA NESSA!

Esquecer que o INNER JOIN exclui empenhos que não estão nas duas tabelas, o que altera a média.

Passo 2 — Aplicar a função AVG na coluna diferenca

Com as diferenças calculadas para cada empenho, a consulta externa usa AVG para resumir todos esses valores em um único número: a média aritmética. É essa média que aparece no resultado.

Por que esta fórmula: AVG é a função de agregação que calcula a média de um conjunto de valores, ignorando nulos. É exatamente o que a consulta pede.

AVG(diferenca)AVG(diferenca)

De onde vem cada valor: diferencadiferenca = passo 1: coluna calculada na subconsulta

NÃO CAIA NESSA!

Confundir AVG com SUM ou COUNT, que dariam resultados diferentes.

Passo 3 — Ler o valor exibido na figura

A questão fornece o resultado da consulta em uma figura. O valor numérico é o que precisamos para escolher a alternativa. É importante ler a figura com atenção, pois a formatação pode usar ponto ou vírgula como separador decimal.

813.275\boxed{813.275}
NÃO CAIA NESSA!

Confundir a notação: por exemplo, ler 813.275 como 813 mil e 275, quando na verdade é 813,275.

Passo 4 — Conferir a alternativa correspondente

Com o valor identificado, basta comparar com as alternativas. O valor 813.275 corresponde à alternativa C.

C\boxed{\text{C}}
NÃO CAIA NESSA!

Marcar a alternativa B (542.183) ou D (9 126.94) por erro de leitura da figura.

Resposta: 813.275 — alternativa C

Link permanente: /questoes/vu195948