---
# System prepended metadata

title: '#Back-end - A4 - 14/07'
tags: [Back-end]

---

# #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 <> '-';
```