Um exercício novo da plataforma URI pra vocês! É outro de SQL, dessa vez o problema 2738 (Concurso).
Antes de resolver qualquer problema de SQL do URI, recomendamos seguir os seguintes passos:
- Ler todo enunciado do problema.
- Ler os tópicos do fórum em caso de dúvidas
- Preparar o esquema, conforme fornecido no problema. Obs.: muitas vezes o pessoal coloca o código de criação do esquema no fórum, então é só copiar!
Plataforma: URI (BEECROWD)
Problema: 2738
Solução:
Nesse exercício era necessário selecionar (SELECT) o nome do candidato e a sua pontuação. Para calcular a pontuação era necessário seguir uma fórmula dada no enunciado do problema. O ponto mais importante aqui é que toda expressão da fórmula precisaria ser usada como parâmetro na função round, que delimitaria a resposta a duas casas decimais. Além disso, este valor precisa do alias "AS avg", para nomear a coluna desta forma no resultado. Para relacionar corretamente os dados, a condição exige que o id do candidato seja o mesmo valor que candidate_id na tabela score (chave estrangeira) e é necessário ordenar os valores pela nota calculada, de forma descendente, ou seja, notas maiores primeiro.
Outra solução válida seria com INNER JOIN. Como você fez? Compreendeu esta solução?
1
2
3
4
| SELECT candidate.name,
round((score.math*2 + score.specific*3 + score.project_plan*5) / 10.0, 2)
AS avg FROM candidate, score
WHERE candidate.id = score.candidate_id ORDER BY avg DESC;
|
Nenhum comentário:
Postar um comentário