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)
- Host: GitHub
- URL: https://github.com/borjamome/censo_animales_madrid
- Owner: BORJAMOME
- Created: 2024-05-17T13:03:53.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-17T15:01:08.000Z (about 2 years ago)
- Last Synced: 2025-01-31T17:48:07.110Z (over 1 year ago)
- Topics: analysis, pets, sql
- Homepage:
- Size: 10.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[](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;
```

- **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;
```

- **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;
```

- **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;
```

- **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;
```

- **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;
```

- **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;
```

- **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;
```

- **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;
```

- **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;
```

- **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;
```

- **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;
```
