Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1.- Construir una consulta que muestra las cantidades de personas por sexo
- que hay en la tabla persona. Muestra las columnas sexo y cantidad.
- SELECT COUNT(persexo) cantidad, persexo FROM persona GROUP BY persexo;
- =============================================================
- 1a.- Agregar a las columnas los alias SEXO y CANTIDAD.
- SELECT COUNT(persexo) cantidad, persexo sexo FROM persona GROUP BY persexo;
- =============================================================
- 1b.- Modificar la consulta para que muestre ‘Hombre’ o ‘Mujer’ como
- contenido de la columna persexo
- SELECT COUNT(persexo) cantidad,
- CASE persexo WHEN 'M' THEN 'Hombre'
- ELSE CASE persexo WHEN 'F' THEN 'Mujer' END
- END sexo FROM persona GROUP BY persexo;
- =============================================================
- 2.-
- Construir un comando que muestre cuál es la fecha de nacimiento más
- antigua de las personas, en cada país de nacimiento. Mostrar las columnas
- pernacion y fecha.
- SELECT MIN(perfecnac) fecha, pernacion FROM persona GROUP BY pernacion;
- =============================================================
- 2a.- Modificar la consulta para que muestre el nombre del país en vez del
- código de país, para lo cual debe usar un join.
- SELECT MIN(perfecnac) fecha, pais.paisnombre FROM persona
- join pais ON pais.paiscodigo = persona.pernacion
- GROUP BY paisnombre;
- =============================================================
- 2b.- Ordenar los resultados por nombre de país en forma descendente.
- SELECT MIN(perfecnac) fecha, pais.paisnombre FROM persona
- join pais ON pais.paiscodigo = persona.pernacion
- GROUP BY paisnombre ORDER BY paisnombre DESC ;
- =============================================================
- 2c.- Dar un formato a la fecha de forma que se vea similar a la siguiente:
- 'Sun 14 de July de 1946'.
- SELECT date_format(MIN(perfecnac),'%a %d de %M de %Y') fecha , pais.paisnombre FROM persona
- join pais ON pais.paiscodigo = persona.pernacion
- GROUP BY pernacion ORDER BY paisnombre DESC;
- =============================================================
- 3.-
- Construir una consulta que muestra cuál es el promedio de importe por
- cada préstamo. Mostrar las columnas número de préstamo y promedio.
- SELECT AVG(ifnull(presimporte,0)) promedio, prestamo_detalle.presnumero "Número de préstamo"
- FROM prestamo_detalle
- GROUP BY prestamo_detalle.presnumero;
- =============================================================
- 3a.- Modificar la columna del promedio de modo que esté redondeada a 1
- DECIMAL.
- SELECT format(AVG(ifnull(presimporte,0)),1 ) promedio, prestamo_detalle.presnumero "Número de préstamo"
- FROM prestamo_detalle
- GROUP BY prestamo_detalle.presnumero;
- =============================================================
- 3b.- Modificar la columna del promedio de forma que muestre siempre dos
- decimales y signo monetario.
- SELECT CONCAT("s/",format(AVG(ifnull(presimporte,0)),2)) promedio, prestamo_detalle.presnumero "Número de préstamo"
- FROM prestamo_detalle
- GROUP BY prestamo_detalle.presnumero;
- =============================================================
- 3c.- Modificar la consulta de forma que muestre una sola columna con el alias
- PRÉSTAMOS y la siguiente apariencia:
- ‘El préstamo 501 tiene un promedio de S/ 4.50’.
- SELECT CONCAT("El préstamo ", presnumero," tiene un promedio de " ," s/",format(AVG(ifnull(presimporte,0)),2)) PRÉSTAMOS
- FROM prestamo_detalle
- GROUP BY prestamo_detalle.presnumero;
- =============================================================
- 4Construir una consulta que muestra cuantos ejemplares hay de cada género
- dentro de cada idioma de edición. Mostrar las columnas código de género,
- código de idioma y cantidad.
- SELECT ejemplar.ejemidioma,pelgenero, COUNT(*) cantidad FROM ejemplar, pelicula
- WHERE ejemplar.pelcodigo = pelicula.pelcodigo
- GROUP BY ejemplar.ejemidioma, pelicula.pelgenero;
- =============================================================
- Modificar la consulta de forma que se muestre el nombre del género en vez
- del código de genero, con el alias GENERO. Debe emplear un join
- SELECT ejemplar.ejemidioma, genero.gennombre GENERO, COUNT(*) cantidad
- FROM ejemplar, pelicula, genero
- WHERE ejemplar.pelcodigo = pelicula.pelcodigo AND pelicula.pelgenero = genero.gencodigo
- GROUP BY ejemplar.ejemidioma, pelicula.pelgenero;
- =============================================================
- Modificar la consulta de forma que se vea también el nombre del idioma en
- vez del código de idioma, con el alias IDIOMA. Debe ampliar el join
- SELECT idioma.idionombre IDIOMA, genero.gennombre GENERO, COUNT(*) cantidad
- FROM ejemplar, pelicula, genero, idioma
- WHERE ejemplar.pelcodigo = pelicula.pelcodigo AND pelicula.pelgenero = genero.gencodigo AND ejemplar.ejemidioma = idioma.idiocodigo
- GROUP BY ejemplar.ejemidioma, pelicula.pelgenero;
- =============================================================
- cambiar la consulta de agrupamiento USANDO los
- alias Y ORDENAR DE FORMA DESCENTENDE POR IDIOMA
- SELECT i.idionombre IDIOMA, g.gennombre GENERO, COUNT(*) cantidad
- FROM ejemplar e, pelicula p, genero g, idioma i
- WHERE e.pelcodigo = p.pelcodigo AND p.pelgenero = g.gencodigo AND e.ejemidioma = i.idiocodigo
- GROUP BY IDIOMA, GENERO ORDER BY IDIOMA DESC;
- =============================================================
- Modificar la consulta para que muestre la siguiente apariencia:
- ‘Hay 5 películas del genero Acción en Ingles’.
- SELECT CONCAT( "hay ", COUNT(*) , " películas del género ", g.gennombre," en ", i.idionombre) resultado
- FROM ejemplar e, pelicula p, genero g, idioma i
- WHERE e.pelcodigo = p.pelcodigo AND p.pelgenero = g.gencodigo AND e.ejemidioma = i.idiocodigo
- GROUP BY e.ejemidioma, p.pelgenero;
- =============================================================
- Agregar lo necesario para que si la cantidad es uno diga ‘película’ y no
- ‘películas’.
- SELECT CONCAT( "hay ", COUNT(*),
- CASE
- WHEN COUNT(*)>1 THEN ' peliculas '
- ELSE ' pelicula' END
- , " del género ", g.gennombre," en ", i.idionombre) resultado
- FROM ejemplar e, pelicula p, genero g, idioma i
- WHERE e.pelcodigo = p.pelcodigo AND p.pelgenero = g.gencodigo AND e.ejemidioma = i.idiocodigo
- GROUP BY e.ejemidioma, p.pelgenero ;
- =============================================================
- Modificar la consulta. Debe emplear join
- SELECT CONCAT( "hay ", COUNT(*),
- CASE
- WHEN COUNT(*)>1 THEN ' peliculas '
- ELSE ' pelicula' END
- , " del género ", g.gennombre," en ", i.idionombre) resultado
- FROM ejemplar e
- join pelicula p ON e.pelcodigo = p.pelcodigo
- join genero g ON p.pelgenero = g.gencodigo
- join idioma i ON e.ejemidioma = i.idiocodigo
- GROUP BY e.ejemidioma, p.pelgenero ;
- =============================================================
- 5.-
- Construir una consulta que muestra a los préstamos que se han realizado
- con 2 o más películas.
- SELECT COUNT(presnumero), presnumero
- FROM prestamo_detalle
- GROUP BY presnumero
- HAVING COUNT(presnumero) > 2;
- =============================================================
- 5a.- mostrar los préstamos que han tenido
- más de una película del genero 1.
- SELECT COUNT(pd.presnumero), pd.presnumero, p.pelgenero FROM prestamo_detalle pd, pelicula p WHERE p.pelcodigo=pd.pelcodigo AND p.pelgenero=1 GROUP BY presnumero HAVING COUNT(presnumero)>1;
- SELECT COUNT(pd.presnumero), pd.presnumero , p.pelgenero
- FROM prestamo_detalle pd , ejemplar e, pelicula p
- WHERE pd.pelcodigo = e.pelcodigo AND e.ejemnumero = pd.ejemnumero AND p.pelcodigo = e.pelcodigo
- AND p.pelgenero =1
- GROUP BY pd.presnumero, p.pelgenero
- HAVING COUNT(pd.presnumero) >1;
- =============================================================
- 6.-
- Construir una consulta que muestra cuál es la cantidad de ejemplares por
- idioma más alta.
- SELECT MAX(cantidad) FROM (
- SELECT COUNT(*) cantidad ,ejemplar.ejemidioma idioma FROM ejemplar GROUP BY ejemplar.ejemidioma
- ) AS tabla;
- =============================================================
- 6a.- Modificar la consulta para que muestre cual es la cantidad más baja.
- SELECT MIN(cantidad) FROM (
- SELECT COUNT(*) cantidad ,ejemplar.ejemidioma idioma FROM ejemplar GROUP BY ejemplar.ejemidioma
- ) AS tabla;
- SELECT COUNT(*) cantidad ,idioma.idionombre
- FROM ejemplar, idioma WHERE ejemplar.ejemidioma = idioma.idiocodigo
- GROUP BY ejemplar.ejemidioma
- =============================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement