Skip to content

Instantly share code, notes, and snippets.

View eloisamec's full-sized avatar

Maria Eloísa Costa eloisamec

  • Knewin
  • Florianópolis
View GitHub Profile
1. Apresente a árvore de consulta otimizada para a expressão abaixo. Considere todos os dados de eleições da República do Brasil (desde 1892) cadastrados no banco consultado, 98% do número de doações a campanhas feitas por pessoas que não os próprios candidatos, 2% do número de doações com valor superior a 10.000, 1,5% das candidaturas em 2016 e 14% de pessoas rés. Considere ainda cada registro de Pessoa ocupando 256 bytes e índice primário por id<X> para cada tabela <X>, além de índice auxiliar por cada chave estrangeira, D.valor, C.ano e P.dtNasc.
SELECT P.*, SUM(D.valor) AS total,
COUNT (DISTINCT Cand.*) AS nroCands
FROM Pessoa AS P, Doacao AS D, Campanha AS C, Pessoa AS Cand
WHERE P.idP = D.idDoador AND D.idC = C.idC AND
C.idCand = Cand.idP AND P.idP = Cand.idP AND
D.valor > 10.000 AND C.ano > 2015 AND Cand.reu = ‘TRUE’
GROUP BY P.* HAVING total > 100.000
ORDER BY total, nroCands DESC;