# #Back-end - A4 - 14/07 ###### Aluno: Pedro Ciccone ###### tags: `Back-end` **1.** Para a cidade de São Paulo, busque por todos os imóveis que sejam no terceiro ou no quarto andar e que custem no total até R$ 2000,00. Quantos imóveis entram nessa restrição? ``` SELECT COUNT(*) FROM imoveis WHERE cidade = 'São Paulo' AND total < 200000 AND (andar = '3' OR andar = '4'); ``` **2.** Qual é a media de aluguel e condomínio dos imóveis do exercício 1 em reais? ``` SELECT AVG(aluguel)::REAL, AVG(condominio)::REAL FROM imoveis WHERE cidade = 'São Paulo' AND total < 200000 AND (andar = '3' OR andar = '4'); ``` **3.** Agora, se a gente considerasse Rio de Janeiro e Belo Horizonte como possibilidades junto com de São Paulo, sob as mesmas condições, quantos imóveis teríamos no total? ``` SELECT COUNT(*) FROM imoveis WHERE (cidade = 'São Paulo' OR cidade = 'Belo Horizonte' OR cidade = 'Rio de Janeiro') AND total < 200000 AND (andar = '3' OR andar = '4'); ``` **4.** Assumindo o exercício anterior, quais seriam as médias de aluguel e condomínio? ``` SELECT AVG(aluguel)::REAL, AVG(condominio)::REAL FROM imoveis WHERE (cidade = 'São Paulo' OR cidade = 'Belo Horizonte' OR cidade = 'Rio de Janeiro') AND total < 200000 AND (andar = '3' OR andar = '4'); ``` **5.** Quantos apartamentos existem listados em São Paulo no total? ``` SELECT COUNT(*) FROM imoveis WHERE cidade = 'São Paulo' AND andar >= '1'; ``` **6.** Quantas casas exitem listadas em São Paulo? ``` SELECT COUNT(*) FROM imoveis WHERE cidade = 'São Paulo' AND andar = '-'; ``` **7.** Quantos imóveis existem por cidade no total? ``` SELECT DISTINCT cidade as Cidade, (COUNT(cidade)) as Imóveis FROM imoveis GROUP BY cidade; ``` **8.** Quantos imóveis existem por cidade que possuem dois banheiros ou mais e que aceitem animais? ``` SELECT cidade as Cidade, (COUNT(cidade)) as Imóveis FROM imoveis WHERE banheiros >= '2' AND animais = TRUE GROUP BY cidade; ``` **9.** Qual a média de preço de aluguel por cidade, assumindo as restrições do exercício 8? **10.** Qual a média de preço de condomínio por cidade, assumindo as restrições do exercício 8? Respostas **9** e **10**: ``` SELECT cidade as Cidade, TRUNC(AVG(aluguel / 100), 2) as Aluguel, TRUNC(AVG(condominio / 100), 2) as Condomínio FROM imoveis WHERE banheiros >= '2' AND animais = TRUE GROUP BY cidade; ``` **11.** Existem CASAS mobiliadas que aceitam animais e possuem 3 banheiros ou mais e 3 quartos ou mais na cidade de Campinas? Se sim, qual a média de valor total? ``` SELECT TRUNC(AVG(total / 100),2) FROM imoveis WHERE cidade = 'Campinas' AND andar = '-' AND animais = TRUE AND mobilias = TRUE AND banheiros >= '3' AND quartos >= '3'; ``` **12.** Existem apartamentos que possuem 60 ou menos de área e possuem 3 banheiros? Se sim, qual a média de valores totais? ``` SELECT TRUNC(AVG(total / 100),2) FROM imoveis WHERE andar <> '-' AND area <= 60 AND banheiros = '3'; ``` **13.** Com as seguintes restrições: * Se em São Paulo, apartamentos de 4 banheiros ou mais, aceitam animais e mobiliados que estejam abaixo de R$ 3000 reais no total; * Se em Campinas, casas de 3 banheiros ou mais, que aceitam animais e não mobiliados que custam até R$ 2500 no total; * Se em Belo Horizonte, casas de 2 banheiros que aceitam animais, mobiliados de até R$ 2000 Responda quantos apartamentos existem no total utilizando apenas uma consulta. ``` SELECT * FROM imoveis WHERE (cidade = 'São Paulo' AND andar <> '-' AND banheiros >= '4' AND animais = TRUE AND mobilias = FALSE AND total < 300000) OR (cidade = 'Campinas' AND andar = '-' AND banheiros >= '3' AND animais = TRUE AND mobilias = FALSE AND total <= 250000) OR (cidade = 'Belo Horizonte' AND andar = '-' AND banheiros = '2' AND animais = TRUE AND mobilias = TRUE AND total <= 200000); ``` **14.** Quais os maiores e menores valores totais para apartamentos por cidade? ``` SELECT cidade as Cidade, MAX(total) / 100 as Máximos, MIN(total) / 100 as Mínimos FROM imoveis WHERE andar <> '-' GROUP BY cidade; ``` **15.** Quais são as opções de andares listados? Qual o maior andar listado? ``` SELECT MAX(andar::INTEGER) FROM imoveis WHERE andar <> '-'; ```