Um dos últimos exercícios de SQL que resolvi, o multiverso de Richard. Veja os detalhes na sequência!
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: 2742
Solução:
Esse exercício não era difícil, mas tinha vários detalhes para cumprir, por isso a solução ficou um pouco longa.O fator N precisava da multiplicação do valor omega pela constante 1.618, com precisão de três casas decimais (realizado pela função round). No exemplo de saída o nome da coluna deveria ser "Fator N", então foi necessário usar as "Fator N" no resultado desta coluna.
As demais restrições foram realizadas na cláusula where, garantindo que o nome do registro da tabela life_registry começa com Richard, que o id da tabela dimensions confere com o dimensions_id na tabela life_registry (chave estrangeira) e que o nome das dimensões é C774 ou C875. Ah, quase esqueci, mas os valores do campo omega deveriam ordenar os resultados de forma ascendente, portanto é necessário inserir também a cláusula ORDER BY pelo valor da coluna omega com ASC (mas você pode suprimir o ASC se quiser, como eu fiz).
Sua solução ficou igual a minha?
1 2 3 4 5 6 | SELECT life_registry.name, round(life_registry.omega * 1.618,3) AS "Fator N" FROM life_registry, dimensions WHERE dimensions.id = life_registry.dimensions_id AND life_registry.name LIKE 'Richard%' AND (dimensions.name = 'C774' OR dimensions.name = 'C875') ORDER BY life_registry.omega; |