1. Obtener el nombre de la comunidad con menor número de habitantes.
SELECT
provincias.comunidad, SUM (localidades.habitantes) AS habitantes FROM
provincias, localidades WHERE localidades.codprov = provincias.codprov
GROUP BY provincias.comunidad ORDER BY habitantes ASC LIMIT 1
2. Obtener el nombre de las comunidades con un número de habitantes por debajo de la media de todas las comunidades.
SELECT
provincias.comunidad, sum (localidades.habitantes) AS hab FROM
provincias, localidades WHERE localidades.codprov = provincias.codprob
GROUP BY provincias.comunidad HAVING SUM (localidades.habitantes) <
(SELECT AVG (hab) FROM (SELECT provincias.comunidad, sum
(localidades.habitantes) AS hab FROM provincias,localidades WHERE
localidades.codprov = provincias.codprov GROUP BY provincias.comunidad)
AS t1)
3. Obtener el nombre de las localidades con un número de habitantes por debajo de la media de todas las localidades.
SELECT nombre FROM localidades WHERE habitantes < (SELECT AVG (habitantes) FROM localidades)
4. Obtener las localidades accesibles a través de un solo tramo desde la localidad de Cuenca.
SELECT
nombre FROM localidades WHERE codloc IN (SELECT codloca FROM tramos
WHERE codlocb IN (SELECT codloc FROM localidades WHERE nombre =
'Cuenca')) UNION SELECT nombre FROM localidades WHERE codloc IN (SELECT
codlocb FROM tramos WHERE codloca IN (SELECT codloc FROM localidades
WHERE nombre = 'Cuenca'))
5. Obtener el nombre de las localidades de la comunidad CLM.
SELECT nombre FROM localidades WHERE codprov IN (SELECT codprov FROM provincias WHERE comunidad = 'CLM')
6. Obtener el número de habitantes de cada provincia, ordenando por comunidad y provincia.
SELECT
SUM (localidades.habitantes) FROM localidades, provincias WHERE
localidades.codprov = provincias.codprov GROUP BY provincias.nombrep,
provincias.comunidad ORDER BY provincias.nombrep, provincias.comunidad
7. Obtener las comunidades que tienen de media una distancia superior a 30 kilómetros entre las localidades de su comunidad.
8. Obtener el nombre de las provincias con un censo inferior a 40000 habitantes.
SELECT
nombrep FROM provincias, localidades WHERE localidades.codprov =
provincias.codprov GROUP BY provincias.nombrep HAVING SUM
(localidades.censo) < 40,000
9. Obtener localidades que no figuren en ninguno de los tramos o en los que no figure la distancia entre los nodos del tramo.
SELECT
nombre FROM localidades WHERE codloc NOT IN (SELECT codloca FROM tramos
UNION SELECT codlocb FROM tramos) OR codloc IN (SELECT codloca FROM
tramos WHERE distancia IS NULL UNION SELECT codlocb FROM tramos WHERE
distancia IS NULL)
No hay comentarios:
Publicar un comentario