0% encontró este documento útil (0 votos)
180 vistas9 páginas

Taller de Consultas Bogota

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1/ 9

Bases de Datos Espaciales 1

TALLER DE CONSULTAS ESPACIALES CASO DE ESTUDIO: BOGOTA

1. Muestre la localidad con mayor área.

SELECT locnombre "Localidad", SDO_GEOM.SDO_AREA(geometry, 0.005) "Area" FROM localidad


WHERE SDO_GEOM.SDO_AREA(geometry, 0.005) = (SELECT
MAX(SDO_GEOM.SDO_AREA(geometry, 0.005)) FROM localidad );

2. Muestre las localidades y el número total de parques/escenarios que hay en ella.


SELECT loc.locnombre "Localidad", COUNT(loc.locnombre) "Total Parques" FROM localidad loc
INNER JOIN parques par ON par.id_localid = loc.loccodigo
GROUP BY loc.locnombre
ORDER BY COUNT(loc.locnombre) DESC;

3. Muestre las localidades y el número total de colegios que hay en ella.


Bases de Datos Espaciales 2

SELECT loc.locnombre "Localidad", COUNT(loc.locnombre) "Total Colegios" FROM localidad loc


INNER JOIN colegios col ON col.cod_loca = loc.loccodigo
GROUP BY loc.locnombre
ORDER BY COUNT(loc.locnombre) DESC;

4. Muestre los colegios que no están asociados a ninguna localidad.


SELECT nombre_est from colegios
WHERE objectid NOT IN (
SELECT C.objectid
FROM localidades D, colegios C
WHERE SDO_RELATE(D.Geometry, C.Geometry,'mask=ANYINTERACT') = 'TRUE');

5. Muestre la localidad con mayor número de colegios.


SELECT Loca "Localidad", tot "Total Colegios" FROM (
SELECT loc.locnombre Loca, COUNT(loc.locnombre) tot
Bases de Datos Espaciales 3

FROM localidad loc


INNER JOIN colegios col ON col.cod_loca = loc.loccodigo
GROUP BY loc.locnombre
ORDER BY tot DESC
)WHERE ROWNUM = 1;

6. Muestre la localidad con menor número de colegios.

SELECT Loca "Localidad", tot "Total Colegios" FROM (


SELECT loc.locnombre Loca, COUNT(loc.locnombre) tot
FROM localidad loc
INNER JOIN colegios col ON col.cod_loca = loc.loccodigo
GROUP BY loc.locnombre
ORDER BY tot ASC
)WHERE ROWNUM = 1;

7. Muestre las localidades que son vecinas de la localidad "PUENTE ARANDA".


SELECT locnombre "Localidad"
FROM localidad
WHERE locnombre <> 'PUENTE ARANDA' AND
SDO_GEOM.SDO_DISTANCE((SELECT geometry FROM localidad
WHERE locnombre = 'PUENTE ARANDA'),geometry, 0.005) = 0
ORDER BY locnombre;
Bases de Datos Espaciales 4

8. Mostrar los parques/escenarios con mayor perímetro.


SELECT parque "Nombre Parque", perimetro "Perimetro" FROM (
SELECT par.nombre_par parque,
MAX(SDO_GEOM.SDO_LENGTH(par.geometry, 0.005)) perimetro
FROM localidad loc
INNER JOIN parques par ON par.id_localid = loc.loccodigo
GROUP BY par.nombre_par
ORDER BY perimetro DESC
)WHERE ROWNUM = 1;

9. Muestre las localidades por donde pasa la ciclovía más larga.

--- No encuentra la relación entre las tablas ciclovía y localidad

10. Muestre las localidades que tienen mayor número de jardines infantiles.
SELECT loc.locnombre "Localidad", COUNT(loc.locnombre) "Jardines Infantiles"
FROM localidad loc
INNER JOIN colegios col ON col.cod_loca = loc.loccodigo
WHERE nombre_est LIKE '%JARDIN INFANTIL%'
GROUP BY loc.locnombre
Bases de Datos Espaciales 5

ORDER BY COUNT(loc.locnombre) DESC;

11. Muestre las localidades que tienen más colegios y por donde no pasa ninguna ciclovía.
--- No encuentra la relación entre las tablas ciclovía y localidad

12. Muestre los colegios que tienen mayor distancia entre sí.
SELECT C1.nombre_SED nombre1,C2.nombre_SED nombre2,
MAX(SDO_GEOM.SDO_DISTANCE(C1.geometry, C2.geometry, 0.005)) Distancia
FROM colegios C1, colegios C2
GROUP BY c1.nombre_SED, c2.nombre_sed
ORDER BY MAX(SDO_GEOM.SDO_DISTANCE(C1.geometry, C2.geometry, 0.005)) DESC;
Bases de Datos Espaciales 6

13. Muestre los barrios que no contienen ningún Hotel. (Barrios que no contienen ningún jardin)

SELECT DISTINCT barrio__ge barrio


FROM colegios
WHERE nombre_est NOT LIKE '%JARDIN%';

14. Muestre los colegios que estén dentro de un rango de 5 km del Estadio Nemesio Camacho El
Campin. (No se puede operar por el sistema de coordenadas)

SELECT nombre_sed "colegio"


FROM colegios
WHERE SDO_GEOM.SDO_DISTANCE((SELECT geometry FROM parques
Bases de Datos Espaciales 7

WHERE nombre_par LIKE '%ESTADIO NEMECIO CAMACHO EL CAMPIN%'),geometry,


0.005) < 5
ORDER BY nombre_sed;

15. Muestre la localidad con mayor número de parques.

SELECT localidad "Localidad", total "Cantidad Parques" FROM (


SELECT loc.locnombre localidad, COUNT(loc.locnombre) total FROM localidad loc
INNER JOIN parques par ON par.id_localid = loc.loccodigo
GROUP BY loc.locnombre
ORDER BY COUNT(loc.locnombre) DESC
)WHERE ROWNUM = 1;

16. Muestre la localidad que tengan mayor número de jardines infantiles, pero menores colegios
con discapacidad cognitiva.

SELECT localidad "Localidad", jardin "Cantidad Jardines" FROM (


SELECT loc.locnombre localidad, COUNT(loc.locnombre) jardin FROM localidad loc
INNER JOIN colegios col ON col.cod_loca = loc.loccodigo
WHERE nombre_est LIKE '%JARDIN INFANTIL%' AND discapacid LIKE '%COGNITIVA%'
Bases de Datos Espaciales 8

GROUP BY loc.locnombre
ORDER BY COUNT(loc.locnombre) DESC
)WHERE ROWNUM = 1;

17. Mostrar los parques/escenarios que en el nombre tengan la palabra “Desarrollo” y que estén en
la localidad de Engativa.

SELECT par.nombre_par parque


FROM parques par INNER JOIN localidades loc ON loc.loccodigo = par.id_localid
WHERE par.nombre_par LIKE '%DESARROLLO%'
AND loc.locnombre = 'ENGATIVA'

18. Mostrar los colegios que tengan el mismo nombre en diferentes localidades.
SELECT colegio FROM(SELECT a.objectid, a.cod_loca, a.nombre_est colegio,b.objectid,
b.cod_loca, b.nombre_est
FROM colegios a, colegios b
WHERE a.nombre_est= b.nombre_est
AND a.cod_loca<>b.cod_loca
Bases de Datos Espaciales 9

AND a.objectid=(SELECT MAX(objectid) FROM colegios


WHERE nombre_est=a.nombre_est));

También podría gustarte