Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2018
308
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 6.21 KB | None | 0 0
  1. #HINTS:https://rua.ua.es/dspace/bitstream/10045/28357/11/T11_Conjuntos.pdf
  2. #Esbrinar el títol i ladescripció d’aquelles pel·lícules que es van rodar en l’idioma original que té per nom (name) “English”.(FK -> filme.language_id)
  3. #@
  4. SELECT title,description
  5.     FROM film as f
  6.     INNER JOIN
  7.     (select * from language where name = "English") as lang
  8.     ON f.language_id = lang.language_id;
  9.  
  10. #$
  11.              
  12. # Esbrinar títol i descripció d’aquelles pel·lícules que pertanyen a la categoria “Sci-Fi”.
  13. #@
  14. SELECT
  15.     title, description
  16. FROM
  17.     film
  18.         INNER JOIN
  19.     film_category AS fca ON fca.film_id = film.film_id
  20.         INNER JOIN
  21.     category AS ca ON ca.category_id = fca.category_id
  22. WHERE
  23.     ca.name = 'Sci-fi';
  24.  
  25. #$
  26.  
  27.  
  28. # Esbrinar el ID, el nom i el cognom (last_name i first_name) dels actors que no han participat a cap pel·lícula,
  29. # més aquells que han participat a menys de 20 pel·lícules.
  30. #@
  31. SELECT DISTINCT
  32.     a.actor_id, first_name, last_name, COUNT(film_id)
  33. FROM
  34.     actor AS a
  35.         LEFT JOIN
  36.     film_actor AS fa ON fa.actor_id = a.actor_id
  37. GROUP BY actor_id
  38. HAVING COUNT(film_id) = 0
  39. UNION SELECT
  40.     a.actor_id, first_name, last_name, COUNT(film_id)
  41. FROM
  42.     actor AS a
  43.         INNER JOIN
  44.     film_actor AS fa ON fa.actor_id = a.actor_id
  45. GROUP BY actor_id
  46. HAVING COUNT(film_id) < 20;
  47. #$
  48. # Obtenir un llistat on aparegui els títols de les pel·lícules i el número de vegades que han estat llogades (rental) durant tot l’any 2005.
  49. #@
  50. SELECT DISTINCT
  51.     f.film_id, f.title, rl.rental_id, COUNT(rental_id)
  52. FROM
  53.     film AS f
  54.         INNER JOIN
  55.     inventory AS inv ON inv.film_id = f.film_id
  56.         INNER JOIN
  57.     rental AS rl ON inv.inventory_id = rl.inventory_id
  58. WHERE
  59.     rental_date BETWEEN '2005-01-01' AND '2005-12-31'
  60. GROUP BY film_id;
  61. #$
  62.          
  63. #Obtenir un llistat on aparegui el id de la pel·lícula, el títol, el id del lloguer i els dies que s'ha llogat le pel·lícula (retrun-date - rental_date )  
  64. # de totes les pel·lícules que no estan llogades actualment.
  65. #@
  66. SELECT
  67.     f.film_id,
  68.     f.title,
  69.     rental_id,
  70.     DATEDIFF(return_date, rental_date)
  71. FROM
  72.     film AS f
  73.         INNER JOIN
  74.     inventory AS inv ON inv.film_id = f.film_id
  75.         INNER JOIN
  76.     rental AS rt ON inv.inventory_id = rt.inventory_id
  77. WHERE
  78.     rt.return_date IS NOT NULL;
  79. #$
  80.          
  81. #Obtenir un llistat on aparegui almenys, el nom de l’actor (first_name) i la mitjana del temps de lloguer (retrun-date - rental_date )  
  82. # de totes les pel·lícules en las que han participat. ALERTA! Pot esser que dos actors diferents tenguin el mateix nom.
  83. #@
  84. SELECT
  85.     a.first_name, AVG(DATEDIFF(rt.return_date, rt.rental_date))
  86. FROM
  87.     actor AS a
  88.         INNER JOIN
  89.     film_actor AS fa ON fa.actor_id = a.actor_id
  90.         INNER JOIN
  91.     film AS f ON f.film_id = fa.film_id
  92.         INNER JOIN
  93.     inventory AS inv ON inv.film_id = f.film_id
  94.         INNER JOIN
  95.     rental AS rt ON rt.inventory_id = inv.inventory_id
  96. GROUP BY a.actor_id;
  97. #$
  98. #Esbrinar el títol i la descripció d’aquelles pel·lícules que estan únicament a l’estoc de les tendes que es troben a les adreces amb ID 3 i 4.
  99. #https://www.techonthenet.com/mysql/intersect.php
  100.  
  101. #@
  102. SELECT
  103.     address_id, f.film_id, f.title, f.description
  104. FROM
  105.     film AS f
  106.         INNER JOIN
  107.     inventory AS inv ON f.film_id = inv.film_id
  108.         INNER JOIN
  109.     store AS st ON inv.store_id = st.store_id
  110. WHERE
  111.     address_id = 3
  112.         AND f.film_id IN (SELECT
  113.             f.film_id
  114.         FROM
  115.             film AS f
  116.                 INNER JOIN
  117.             inventory AS inv ON f.film_id = inv.film_id
  118.                 INNER JOIN
  119.             store AS st ON inv.store_id = st.store_id
  120.         WHERE
  121.             address_id = 4);
  122. #$
  123.          
  124. #De totes les tendes que es troben al codi postal 07009 treure una llistat que contengui el ID de la tenda,el nom del client, el cognom del client,
  125. #el correu electrònic del client i la quantitat total que han pagat en concepte de lloguer de pel·lícules,
  126. #però només d’aquelles pel·lícules que durin 120 minuts o més (camp lenght).
  127. #@
  128. SELECT
  129.     st.store_id,
  130.     cu.first_name,
  131.     cu.last_name,
  132.     cu.email,
  133.     SUM(pa.amount)
  134. FROM
  135.     store AS st
  136.         INNER JOIN
  137.     address AS ad ON ad.address_id = st.address_id
  138.         AND ad.postal_code = 07009
  139.         INNER JOIN
  140.     inventory AS inv ON inv.store_id = st.store_id
  141.         INNER JOIN
  142.     film AS f ON f.film_id = inv.film_id
  143.         AND f.length >= 120
  144.         INNER JOIN
  145.     rental AS rt ON rt.inventory_id = inv.inventory_id
  146.         INNER JOIN
  147.     payment AS pa ON pa.rental_id = rt.rental_id
  148.         INNER JOIN
  149.     customer AS cu ON cu.customer_id = rt.customer_id
  150. GROUP BY cu.customer_id;
  151. #$
  152. #Mostrar els camps address i address2 de les tendes que almenys tenguin al seu estoc les pel·lícules amb títol:
  153. # “DETECTIVE VISION” i “DEVIL DESIRE”. Si les tendes tenen més pel·lícules al seu estoc no hi ha problema, podran aparèixer al resultat.
  154.  
  155. #@
  156. SELECT DISTINCT
  157.     f.title, ad.address, ad.address2
  158. FROM
  159.     address AS ad
  160.         INNER JOIN
  161.     store AS st ON st.address_id = ad.address_id
  162.         INNER JOIN
  163.     inventory AS inv ON st.store_id = inv.store_id
  164.         INNER JOIN
  165.     film AS f ON f.film_id = inv.film_id
  166. WHERE
  167.     f.title = 'DETECTIVE VISION'
  168.         AND st.store_id IN (SELECT
  169.             st.store_id
  170.         FROM
  171.             address AS ad
  172.                 INNER JOIN
  173.             store AS st ON st.address_id = ad.address_id
  174.                 INNER JOIN
  175.             inventory AS inv ON st.store_id = inv.store_id
  176.                 INNER JOIN
  177.             film AS f ON f.film_id = inv.film_id
  178.         WHERE
  179.             f.title = 'DEVIL DESIRE');
  180. #$
  181. /* RUBRICA:
  182. +---------------------------------------------------------+-----+
  183. |                        Concepte                         | Pes |
  184. +---------------------------------------------------------+-----+
  185. | El resultat que dóna l'execució de la query és correcte | 50% |
  186. | El codi es homogeni (estandard)                         | 20% |
  187. | S'ha fet la query de la forma més òpitma                | 30% |
  188. +---------------------------------------------------------+-----+
  189. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement