Advertisement
NaFer

CONSULTAS SQL

Apr 18th, 2019
268
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 14.63 KB | None | 0 0
  1. --1. Películas en las que alguno de sus actores participantes también ha sido el director de la película (titulo,
  2. --director), ordenado por director.
  3.  
  4. SELECT titulo, director
  5. FROM participa par, pelicula peli
  6. WHERE par.pelicula = peli.titulo AND peli.director = par.actor
  7. ORDER BY director;
  8.  
  9. TITULO                                   DIRECTOR                  
  10. ---------------------------------------- -------------------------
  11. PULP FICTION                             QUENTIN TARANTINO        
  12. RESERVOIR DOGS                           QUENTIN TARANTINO        
  13. KILL BILL VOL.II                         QUENTIN TARANTINO        
  14. KILL BILL VOL.I                          QUENTIN TARANTINO        
  15. MANHATTAN                                WOODY ALLEN              
  16. ANNIE HALL                               WOODY ALLEN              
  17. HISTORIAS DE NUEVA YORK                  WOODY ALLEN              
  18. MARIDOS Y MUJERES                        WOODY ALLEN              
  19.  8 filas seleccionadas
  20.  
  21. --2. Lista de todos los socios, con indicación de las películas de nacionalidad argentina que han alquilado (dni, nombre, titulo, --num_copia). Para aquellos socios que no han alquilado nunca películas argentinas, rellenar la columna ‘titulo’ con tres guiones: ‘---’ y --‘num_copia’ con un 0. Ordenado por dni, titulo y num_copia.
  22.  
  23. SELECT s.dni, s.nombre,NVL(pelicula, '---') AS TITULO, NVL(copia, 0) AS NUM_COPIA
  24. FROM socio s
  25.      LEFT OUTER JOIN (SELECT al.socio, al.pelicula, al.copia
  26.                       FROM alquiler al
  27.                       WHERE al.pelicula IN (SELECT pe.titulo
  28.                                             FROM pelicula pe
  29.                                             WHERE pe.nacionalidad = 'ARGENTINA')) d
  30.      ON s.dni = d.socio
  31. ORDER BY s.dni, TITULO, NUM_COPIA;
  32.  
  33. DNI      NOMBRE                    TITULO                    NUM_COPIA              
  34. -------- ------------------------- ------------------------- ----------------------
  35. 00000000 NORA CHATA                ---                       0                      
  36. 00000011 LIA GUEKO                 ---                       0                      
  37. 00000022 ABEL HACHA                ---                       0                      
  38. 11111111 GINES CAMPERO             MARTIN (HACHE)            1                      
  39. 11111111 GINES CAMPERO             UN LUGAR EN EL MUNDO      1                      
  40. 22222222 JULIO GARFIO              ---                       0                      
  41. 33333333 EVA PUZZLE                MARTIN (HACHE)            3                      
  42. 44444444 HANNA ESCALA              ---                       0                      
  43. 55555555 RUBEN SOL                 MARTIN (HACHE)            3                      
  44. 66666666 AROA MIRO                 MARTIN (HACHE)            3                      
  45. 66666666 AROA MIRO                 UN LUGAR EN EL MUNDO      2                      
  46. 77777777 VICTOR PACHON             MARTIN (HACHE)            1                      
  47. 77777777 VICTOR PACHON             MARTIN (HACHE)            3                      
  48. 77777777 VICTOR PACHON             UN LUGAR EN EL MUNDO      1                      
  49. 88888888 CESAR SALAO               ---                       0                      
  50. 99999999 ARTURO VIVO               ---                       0                      
  51.  16 filas seleccionadas
  52.  
  53. --3. Actores (actor) que han participado en más de dos películas del director ‘WOODY ALLEN’, ordenados
  54. --alfabéticamente
  55.  
  56. SELECT actor
  57. FROM participa
  58. WHERE pelicula IN(SELECT titulo
  59.                   FROM pelicula
  60.                   WHERE director = 'WOODY ALLEN')
  61. GROUP BY actor
  62. HAVING COUNT(*)>2
  63. ORDER BY actor;
  64.  
  65. ACTOR                    
  66. -------------------------
  67. JUDY DAVIS                
  68. MIA FARROW                
  69. WOODY ALLEN    
  70.  
  71. --4. Número total de copias de aquellas películas en las que ha participado algún actor australiano (titulo, total_copias)
  72.  
  73. SELECT cp.pelicula, COUNT(cp.num_copia) TOTAL_COPIAS
  74. FROM copia cp
  75. WHERE cp.pelicula IN (SELECT pa.pelicula
  76.                       FROM participa pa, actor ac
  77.                       WHERE pa.actor = ac.nombre AND ac.nacionalidad = 'AUSTRALIA')
  78. GROUP BY cp.pelicula;
  79.  
  80. PELICULA                  TOTAL_COPIAS    
  81. ------------------------- ----------------------
  82. CELEBRITY                 2                      
  83. MARIDOS Y MUJERES         3                      
  84. ALICE                     1
  85.  
  86. --5. Para cada socio indicar la nacionalidad (nombre, teléfono, nacionalidad) más común entre las
  87. --películas que ha alquilado, las haya devuelto o no. Es decir, si un socio suele alquilar más películas
  88. --españolas que de cualquier otra nacionalidad, debe aparecer su nombre y teléfono junto con la
  89. --nacionalidad ‘ESPAÑA’. Ordenado por nombre de socio.
  90.  
  91. SELECT nombre, telefono, nacionalidad
  92. FROM socio soci,  (SELECT todos.socio, todos.nacionalidad
  93.                    FROM (SELECT socio, nacionalidad, COUNT(*) cuenta2
  94.                          FROM alquiler alq, pelicula peli
  95.                          WHERE alq.pelicula = peli.titulo
  96.                          GROUP BY socio, nacionalidad) todos,
  97.                          (SELECT socio, MAX(cuenta)abc
  98.                           FROM(
  99.                                SELECT socio, nacionalidad, COUNT(*) cuenta
  100.                                FROM alquiler alq, pelicula peli
  101.                                WHERE alq.pelicula = peli.titulo
  102.                                GROUP BY socio, nacionalidad)
  103.                          GROUP BY socio) mayores
  104.                    WHERE todos.socio = mayores.socio AND mayores.abc = todos.cuenta2) resultado
  105. WHERE soci.dni = resultado.socio
  106. ORDER BY nombre;
  107.  
  108. NOMBRE                    TELEFONO  NACIONALIDAD              
  109. ------------------------- --------- -------------------------
  110. AROA MIRO                 555555666 EEUU                      
  111. ARTURO VIVO               555333444 EEUU                      
  112. CESAR SALAO               555112244 ESPAÑA                    
  113. CESAR SALAO               555112244 EEUU                      
  114. EVA PUZZLE                555000111 EEUU                      
  115. GINES CAMPERO             555222333 EEUU                      
  116. HANNA ESCALA              555999000 ESPAÑA                    
  117. JULIO GARFIO              555777888 ESPAÑA                    
  118. NORA CHATA                555112233 ESPAÑA                    
  119. RUBEN SOL                 555000222 EEUU                      
  120. VICTOR PACHON             555111222 ESPAÑA                    
  121.  11 filas seleccionadas
  122.  
  123. --6.Película que más veces ha sido alquilada por el mismo socio (titulo, dni_socio).
  124.  
  125. SELECT pelis TITULO, socio DNI_SOCIO
  126. FROM(SELECT al.socio, COUNT(al.pelicula) Alquilada, al.pelicula pelis
  127.       FROM alquiler al
  128.       GROUP BY al.socio, al.pelicula) d
  129. WHERE d.Alquilada = (SELECT MAX(COUNT(al.pelicula))
  130.                       FROM alquiler al
  131.                       GROUP BY al.socio, al.pelicula);
  132.  
  133. TITULO                    DNI_SOCIO
  134. ------------------------- ---------
  135. APOCALYPSE NOW            11111111
  136.  
  137. --7. Socios (dni, nombre) que han alquilado todas las películas de la actriz ‘CECILIA ROTH’
  138.  
  139. SELECT dni, nombre
  140. FROM socio
  141. WHERE dni IN( SELECT socio
  142.               FROM( SELECT DISTINCT alq.socio, alq.pelicula
  143.                     FROM participa par,alquiler alq
  144.                     WHERE actor = 'CECILIA ROTH' AND par.pelicula = alq.pelicula)
  145.               GROUP BY socio
  146.               HAVING COUNT(*) = (SELECT COUNT(*)
  147.                                  FROM participa
  148.                                  WHERE actor = 'CECILIA ROTH'));
  149.  
  150. DNI      NOMBRE                    
  151. -------- -------------------------
  152. 11111111 GINES CAMPERO            
  153. 77777777 VICTOR PACHON    
  154.  
  155. --8.Para cada actor  mostrar el número de ocasiones en las que ha participado en películas como protagonista y como actor secundario --(nombre, veces_prota, veces_secun), ordenado por nombre del actor.
  156.        
  157. SELECT nombre, NVL(prota, 0) VECES_PROTA, NVL(secun, 0) VECES_SECUN    
  158. FROM ((actor LEFT OUTER JOIN (SELECT pa.actor, COUNT(pa.tipo_papel) prota
  159.                                FROM participa pa
  160.                                WHERE pa.tipo_papel = 'PROTAGONISTA'
  161.                                GROUP BY pa.actor) pa ON pa.actor=nombre) LEFT OUTER JOIN (SELECT par.actor, COUNT(par.tipo_papel) secun
  162.                                                                                           FROM participa par
  163.                                                                                           WHERE par.tipo_papel = 'SECUNDARIO'
  164.                                                                                           GROUP BY par.actor) par ON par.actor = nombre)
  165. ORDER BY nombre;
  166.  
  167. NOMBRE                    VECES_PROTA            VECES_SECUN            
  168. ------------------------- ---------------------- ----------------------
  169. AL PACINO                 2                      1                      
  170. ALEX ANGULO               1                      0                      
  171. ANA TORRENT               1                      0                      
  172. ANTONIA SAN JUAN          0                      1                      
  173. CANDELA PEÑA              0                      1                      
  174. CARMELO GOMEZ             1                      0                      
  175. CARMEN MAURA              1                      0                      
  176. CECILIA ROTH              2                      1                      
  177. DARYL HANNAH              0                      2                      
  178. DAVID CARRADINE           0                      1                      
  179. DIANE KEATON              2                      1                      
  180. EDUARDO NORIEGA           1                      1                      
  181. ELENA ANAYA               0                      0                      
  182. EMMA SUAREZ               0                      1                      
  183. EUSEBIO PONCELA           0                      1                      
  184. EWAN MCGREGOR             1                      0                      
  185. FEDERICO LUPPI            2                      0                      
  186. FELE MARTINEZ             1                      0                      
  187. HARVEY KEITEL             1                      0                      
  188. JAVIER BARDEM             2                      0                      
  189. JAVIER CAMARA             1                      0                      
  190. JOE MANTEGNA              0                      1                      
  191. JOHN TRAVOLTA             1                      0                      
  192. JOSE SACRISTAN            0                      1                      
  193. JUAN DIEGO BOTTO          1                      0                      
  194. JUDY DAVIS                0                      1                      
  195. KARRA ELEJALDE            0                      0                      
  196. KENNETH BRANAGH           1                      0                      
  197. LEONARDO DICAPRIO         1                      0                      
  198. LUCY LIU                  0                      2                      
  199. MARISA PAREDES            0                      1                      
  200. MARLON BRANDO             2                      0                      
  201. MARTIN SHEEN              0                      1                      
  202. MIA FARROW                1                      2                      
  203. MICHAEL MADSEN            1                      2                      
  204. NAJWA NIMRI               0                      1                      
  205. NANCHO NOVO               0                      0                      
  206. PAZ VEGA                  1                      0                      
  207. PENELOPE CRUZ             0                      2                      
  208. QUENTIN TARANTINO         1                      0                      
  209. ROBERT CARLYLE            0                      2                      
  210. ROBERT DE NIRO            1                      0                      
  211. ROBERT DUVALL             0                      2                      
  212. SAMUEL L. JACKSON         1                      0                      
  213. SANCHO GRACIA             0                      0                      
  214. SANTIAGO SEGURA           0                      1                      
  215. SILKE                     0                      1                      
  216. TERELE PAVEZ              0                      0                      
  217. TIM ROTH                  1                      0                      
  218. TRISTAN ULLOA             1                      0                      
  219. UMA THURMAN               2                      0                      
  220. WOODY ALLEN               4                      0                      
  221.  52 filas seleccionadas
  222.  
  223. --9. Socios avalistas de aquellos socios que no han devuelto alguna de las películas que tienen en alquiler
  224. --(nom_avalista, tel_avalista, nom_socio). Para aquellos socios que no tengan avalista, mostrar la
  225. --cadena ‘*SIN AVAL*’ en la columna nom_avalista. Ordenado por nom_socio..
  226. SELECT NVL(avalis.NOMBRE,'*SIN AVAL*') NOM_AVALISTA, NVL(avalis.telefono,' ') TEL_AVALISTA, avalado.nombre NOM_SOCIO
  227. FROM (socio avalado LEFT OUTER JOIN socio avalis ON avalado.avalista = avalis.dni)
  228. WHERE avalado.dni IN(
  229.                 SELECT DISTINCT socio
  230.                 FROM alquiler
  231.                 WHERE devolucion = 'NO')
  232. ORDER BY avalado.nombre
  233.  
  234. NOM_AVALISTA              TEL_AVALISTA NOM_SOCIO                
  235. ------------------------- ------------ -------------------------
  236. JULIO GARFIO              555777888    AROA MIRO                
  237. JULIO GARFIO              555777888    ARTURO VIVO              
  238. EVA PUZZLE                555000111    CESAR SALAO              
  239. *SIN AVAL*                             EVA PUZZLE                
  240. *SIN AVAL*                             GINES CAMPERO            
  241. JULIO GARFIO              555777888    HANNA ESCALA              
  242. *SIN AVAL*                             JULIO GARFIO              
  243. JULIO GARFIO              555777888    RUBEN SOL                
  244. EVA PUZZLE                555000111    VICTOR PACHON            
  245.  
  246.  9 filas seleccionadas
  247.  
  248. --10.Socio que ha alquilado el mayor número de películas diferentes y cuántas han sido (nombre, num_peliculas).
  249.  
  250. SELECT s.nombre, d.pelisDist NUM_PELICULAS
  251. FROM socio s, (SELECT al.socio, COUNT(DISTINCT al.pelicula) pelisDist
  252.                 FROM alquiler al
  253.                 GROUP BY al.socio) d
  254. WHERE d.socio = s.DNI AND d.pelisDist = (SELECT MAX(COUNT(DISTINCT al.pelicula))
  255.                                           FROM alquiler al
  256.                                           GROUP BY al.socio)
  257.  
  258. NOMBRE                    NUM_PELICULAS          
  259. ------------------------- ----------------------
  260. GINES CAMPERO             20
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement