---
# System prepended metadata

title: 'Session Five: Checkin  | SQL'

---

# Session Five: Checkin  | SQL
Autora: Isabela Silva Sousa 

[toc]


>[color=purple]Mapa mental
![](https://i.imgur.com/6w3wOyF.png)

# Agrupamento de Registros 

## GROUP BY 
>[color=black]
>- Usamos a cláusula GROUP BY para agrupar registros em subgrupos baseados em colunas ou valores retornados por uma expressão.

- **Sintaxe básica** : 
```sql=
SELECT colunas, função_agregação()
FROM tabela
WHERE filtro
GROUP BY colunas
```

- **Criar tabela para teste de GROUP BY** 
```sql=
CREATE TABLE Vendas (
ID Smallint primary key,
NOME_Vendedor varchar(20),
Quantidade int,
Produto varchar(20),
Cidade varchar (20)
);
```

## Usando o GROUP BY 

```sql=
--Consulta usando agregação para obter total de vendas de mouses : 
SELECT Cidade, SUM (quantidade) AS TotalMouses
FROM Vendas
WHERE Produto = "Mouse"
```

```sql=
--Consulta totalizando as vensdas de todos os produtos por cidade: 
SELECT Cidade, SUM (quantidade) AS Total
FROM Vendas
GROUP BY Cidade;
```

>[color=black]exemplo
![](https://i.imgur.com/nZJn1dr.png)


>[color=black]
>- **É importante** fazer o **agrupamento**, pois caso não faça o agrupamento o resultado do seu select sai errado.

# HAVING

## Filtrando resultados do agrupamento

>[color=purple]
>- A cláusula usada para especificar condições de filtragem em grupos de registros ou agregações.
>É frequentemente usada com a cláusula GROUP BY para as colunas agrupadas.

- **Sintaxe :**
```sql=
SELECT colunas, função_agregação()
FROM tabela
WHERE filtro
GROUP BY colunas
HAVING filtro_agrupamento
```

## HAVING EX.1

```sql=
--Consulta retornando total de vendas das cidades com menos de 2500 produtos: 
SELECT Cidade, SUM (quantidade) AS Total
FROM Vendas
GROUP BY Cidade
HAVING SUM (quantidade) <2500;
```

## HAVING EX.2

```sql=
--Consulta retornando total de vendas do 'teclado' das cidades com menos de 1500 teclados vendidos: 
SELECT Cidade, SUM (quantidade) AS Totalteclados
FROM Vendas
WHERE Produto = 'teclado'
GROUP BY Cidade
HAVING SUM (quantidade) <1500;
```




