Outro exercício de SQL que soluciono e posto aqui. Veja a seguir.
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: 3001
Solução:
Neste exercício era importante conhecer a estrutura CASE. Você já conhece? Minha sugestão é ler sobre ela aqui: https://www.postgresql.org/docs/7.4/functions-conditional.html. Conhecendo a estrutura fica fácil resolver o problema. As demais diretivas são as mesmas de antes, usar SELECT, renomear coluna e ordenar os resultados. Aqui uma diferença de outros exercícios anteriores é que a ordenação é feita com duas colunas, isto é, primeiro usa-se a primeira coluna da cláusula ORDER BY, mas se os valores forem iguais, usa-se a segunda coluna como critério de desempate. Neste caso, primeiro ordena-se pelo tipo (coluna type), em ordem alfabética. Em caso de empate, ordena-se pelo id do produto, de forma descendente (DESC).
Entendeu a nossa solução? Se a sua for diferente, conte-nos através de um comentário!
1 2 3 4 5 6 | SELECT name as type, CASE when type = 'A' then 20.0 when type = 'B' then 70.0 else 530.5 END as price FROM products ORDER BY products.type, products.id DESC; |
Nenhum comentário:
Postar um comentário