An open API service indexing awesome lists of open source software.

https://github.com/borjamome/censo_animales_madrid

Análisis del censo de perros y gatos en Madrid (SQL)
https://github.com/borjamome/censo_animales_madrid

analysis pets sql

Last synced: over 1 year ago
JSON representation

Análisis del censo de perros y gatos en Madrid (SQL)

Awesome Lists containing this project

README

          

[![SQL](https://img.shields.io/badge/MySQL-8.0+-f29221?style=for-the-badge&logo=mysql&logoColor=white&labelColor=101010)](https://mysql.com)

# Análisis del Censo de Perros y Gatos en Madrid (SQL)

Este repositorio contiene consultas SQL utilizadas para analizar el censo de perros y gatos en la ciudad de Madrid. Los datos utilizados para este análisis provienen del portal de datos abiertos de la ciudad de Madrid y abarcan el período entre los años 2014 y 2023.

## Estructura de la Base de Datos

La base de datos utilizada para este análisis se llama `censo_animal` y contiene una tabla llamada `censo_animales`. La estructura de la tabla es la siguiente:

- `fecha`: Año del censo.
- `distrito`: Distrito de Madrid.
- `perros`: Número de perros censados.
- `gatos`: Número de gatos censados.

## Consultas Realizadas

A continuación se detallan las consultas SQL realizadas para el análisis del censo de perros y gatos:

- **Total de perros y gatos censados en todos los distritos**

```sql
SELECT SUM(perros) AS total_perros, SUM(gatos) AS total_gatos
FROM censo_animales;
```
Screenshot 2024-05-17 at 15 39 56

- **Total de perros y gatos censados por distrito**
```sql
SELECT distrito, SUM(perros) AS total_perros, SUM(gatos) AS total_gatos
FROM censo_animales
GROUP BY distrito
ORDER BY distrito;
```
Screenshot 2024-05-17 at 15 40 29

- **Total de perros y gatos censados por fecha**
```sql
SELECT fecha, SUM(perros) AS total_perros, SUM(gatos) AS total_gatos
FROM censo_animales
GROUP BY fecha
ORDER BY fecha;
```
Screenshot 2024-05-17 at 15 42 27

- **Promedio de perros y gatos censados por distrito**
```sql
SELECT distrito, AVG(perros) AS promedio_perros, AVG(gatos) AS promedio_gatos
FROM censo_animales
GROUP BY distrito
ORDER BY distrito;
```
Screenshot 2024-05-17 at 15 44 10

- **Evolución del número de perros censados a lo largo del tiempo**
```sql
SELECT fecha, SUM(perros) AS total_perros
FROM censo_animales
GROUP BY fecha
ORDER BY fecha;
```
Screenshot 2024-05-17 at 15 45 18

- **Evolución del número de gatos censados a lo largo del tiempo**
```sql
SELECT fecha, SUM(gatos) AS total_gatos
FROM censo_animales
GROUP BY fecha
ORDER BY fecha;
```
Screenshot 2024-05-17 at 15 46 18

- **Evolución del número de gatos censados a lo largo del tiempo**
```sql
SELECT fecha AS año, SUM(gatos) AS total_gatos
FROM censo_animales
GROUP BY fecha
ORDER BY total_gatos DESC
LIMIT 1;
```
Screenshot 2024-05-17 at 15 46 59

- **Tasa de crecimiento anual del número de perros y gatos**
```sql
SELECT
fecha AS año,
(SUM(perros) - LAG(SUM(perros)) OVER (ORDER BY fecha)) / LAG(SUM(perros)) OVER (ORDER BY fecha) * 100 AS tasa_crecimiento_perros,
(SUM(gatos) - LAG(SUM(gatos)) OVER (ORDER BY fecha)) / LAG(SUM(gatos)) OVER (ORDER BY fecha) * 100 AS tasa_crecimiento_gatos
FROM censo_animales
GROUP BY fecha
ORDER BY fecha;
```
Screenshot 2024-05-17 at 15 48 55

- **Distribución porcentual de perros y gatos por distrito en un año específico**
```sql
SELECT distrito,
SUM(perros) * 100.0 / (SELECT SUM(perros) FROM censo_animales WHERE fecha = '2023') AS porcentaje_perros,
SUM(gatos) * 100.0 / (SELECT SUM(gatos) FROM censo_animales WHERE fecha = '2023') AS porcentaje_gatos
FROM censo_animales
WHERE fecha = '2023'
GROUP BY distrito;
```
Screenshot 2024-05-17 at 15 50 10

- **Porcentaje de crecimiento de perros y gatos por distrito entre 2014 y 2023**
```sql
SELECT
distrito,
SUM(CASE WHEN fecha = '2014' THEN perros ELSE 0 END) AS perros_2014,
SUM(CASE WHEN fecha = '2023' THEN perros ELSE 0 END) AS perros_2023,
((SUM(CASE WHEN fecha = '2023' THEN perros ELSE 0 END) - SUM(CASE WHEN fecha = '2014' THEN perros ELSE 0 END)) / SUM(CASE WHEN fecha = '2014' THEN perros ELSE 0 END)) * 100 AS porcentaje_crecimiento_perros,
SUM(CASE WHEN fecha = '2014' THEN gatos ELSE 0 END) AS gatos_2014,
SUM(CASE WHEN fecha = '2023' THEN gatos ELSE 0 END) AS gatos_2023,
((SUM(CASE WHEN fecha = '2023' THEN gatos ELSE 0 END) - SUM(CASE WHEN fecha = '2014' THEN gatos ELSE 0 END)) / SUM(CASE WHEN fecha = '2014' THEN gatos ELSE 0 END)) * 100 AS porcentaje_crecimiento_gatos
FROM censo_animales
WHERE fecha IN ('2014', '2023')
GROUP BY distrito
ORDER BY distrito;
```
Screenshot 2024-05-17 at 15 51 48

- **Distritos con la mayor diferencia entre el número de perros y gatos en un año específico**

```sql
SELECT
fecha,
distrito,
ABS(SUM(perros) - SUM(gatos)) AS diferencia_perros_gatos
FROM
censo_animales
WHERE
fecha = '2023'
GROUP BY
fecha, distrito
ORDER BY
diferencia_perros_gatos DESC
LIMIT 10;
```
Screenshot 2024-05-17 at 15 53 06

- **Total de perros y gatos en un año específico según la zona(Norte, Sur, Este, Oeste y Centro) del distrito en Madrid**
```sql
SELECT
fecha,
CASE
WHEN distrito IN ('Fuencarral-El Pardo', 'Hortaleza') THEN 'Zona Norte'
WHEN distrito IN ('Carabanchel', 'Moratalaz', 'Puente De Vallecas', 'Usera', 'Villaverde', 'Villa De Vallecas') THEN 'Zona Sur'
WHEN distrito IN ('Ciudad Lineal', 'Barajas', 'San Blas-Canillejas','Vicalvaro') THEN 'Zona Este'
WHEN distrito IN ('Latina', 'Moncloa-Aravaca') THEN 'Zona Oeste'
WHEN distrito IN ('Chamberi','Tetuan','Chamartin','Salamanca','Centro', 'Retiro','Arganzuela') THEN 'Zona Centro'
ELSE 'Otra Zona'
END AS zona,
SUM(perros) AS total_perros,
SUM(gatos) AS total_gatos
FROM
censo_animales
WHERE
fecha = '2023'
GROUP BY
fecha, zona
ORDER BY
fecha, zona;
```
Screenshot 2024-05-17 at 15 56 36