Bueno, hoy nos toca el último ejercicio.
Este ejercicio va a ser increíble porque tenemos que hacer dos cosas por separado.
Ustedes tienen ahí el planteo, nos habla del mejor cliente y quién es el mejor cliente?
El mejor cliente es el cliente que más películas nos ha rentado.
Entonces ahí vamos a tener ya una primera punta.
Tenemos que buscar quién es el cliente que más películas nos ha rentado.
Y por último, tener un filtro muy especial, una lista de películas, una lista de películas que cumplen
con una condición especial que estén en el Estor 2 y que además tengan un rating PG Ion 13 es una una
clasificación especial de películas y todo eso nos lo piden en un solo ejercicio.
Eso va a ser lo más difícil de hacer, pero tranquilo, lo que tenemos que hacer.
Como les dije, tenemos que ejecutar primero estas dos cosas obtener la lista de películas y saber quién
es el mejor cliente.
Vamos a empezar con lo primero.
Vamos a hacer primero la lista de películas que cumplen estas condiciones.
Para qué?
Para que luego, haciendo un in con un in y una sub consulta podamos filtrar todos los films que estén
dentro de esta lista de películas.
Vamos a hacer.
Vamos a crear aquí.
Vamos a hacer un select nuevamente asterisco from film que es la las películas que nosotros vamos a
tener que filtrar y armar esta lista de películas.
Aquí vamos a Shamar, eh?
Perdón, tenemos que hacer un soin aquí de film con el inventario, porque el inventario es el que nos
va a decir qué películas están en el STOR número 2, en el STOR número 2.
Entonces vamos a hacer un Sain de Inventory Ventor y creo que lo correcto es Inventory con el acento
en la E.
Se sabe que en inglés los acentos no existen, pero en cuanto a pronunciación creo que es inventory.
Muy bien.
Y aquí vamos a decir que film e aydemir es igual a Inventory Film.
Ahí ya tenemos unida a las dos tablas y ahora vamos a decirle que solamente necesitamos la lista de
ahí dice porque?
Porque esto que estamos haciendo ahora, luego va a ser ejecutado como una sub consulta dentro de la
consulta principal.
Entonces lo único que necesitamos de esto es el Aydin.
El film hay DID muy bien.
Y ahora le vamos a decir que lo agrupe, que lo agrupe porque esto me va a traer repeticiones a lo loco.
Vamos a hacer un group, voy film ahí.
Si yo corro esto sin ningún Goear, me va a hacer una lista así.
Una idea de todas las películas.
Todas.
Por qué?
Por qué no le puse ningún filtro?
Por ahora no le dije solamente armarme la lista de los que tengan un raiting PG 13 y que sean del STOR
2.
Entonces vamos a ver que tenemos una lista enorme de películas.
Muy bien, ahora vamos a colocar el wear antes del group ballo obviamente wear donde f.n raiting el
rating sea PG.
Nosotros tenemos noven 158 películas en total PG 13 and el estor.
Vamos a hacer que de Inventory solamente no filtre el STOR 2.
Este sería el We are.
Aquí tenemos el filtro de esta sub consulta.
Lo vamos a ejecutar y vamos a ver que en lugar de novecientas cincuenta y ocho mil trescientos sesenta
y dos, estas son las películas que cumplen con esta función y me lo traen una lista ordenada de ahí.
Muy bien, vamos a dejar esta parte, esta primera parte de lado, vamos a hacer la segunda.
El famoso cliente que más vende, más alquila el nuestra empresa.
Entonces lo que tenemos que hacer es otra lista.
Esto va a ser una lista de un solo elemento, porque recuerden que lo único que necesitamos es el que
más.
El que más alquila no toda la lista de clientes.
Entonces vamos a hacer.
Aquí vamos a hacer un From rental R de la tabla de nuestra tabla rental y de aquí vamos a traer solamente
el cast Tomer Haider Aquí nosotros ya tenemos.
Si ejecutamos esto me va a dar cualquier cosa el Heidy idóneo repetido.
Fíjense que tenemos 16 mil registros con todos nuestros Heidy de cast tomar de cada uno de los alquileres
que se han registrado en nuestra empresa.
Ahora vamos a hacer un grupi, obviamente un grub.
Voy de que de často mera ir group voy de repuntó cast tomer Haider muy bien.
Y ahora lo único que me va a mostrar es la lista de los clientes que nos han alquilado.
Cuanto no sé, nos han alquilado.
No podemos ahora determinar cual nos ha alquilado más.
Entonces ahora lo que tenemos que hacer es un order boy order, boy count.
Ahora si vamos a hacer un count, recuerden que al hacer un group voy.
Lo que yo estoy viendo aquí es una lista sin repetición.
Por qué voy a ordenar con un count si acá los clientes no se están repitiendo, no se están repitiendo
porque tengo un group voy.
Recuerden que antes del Group Boys se repetía AL1 mil veces el order boy al hacer este count lo está
haciendo en memoria.
En aras del motor y no tiene que ver con el resultado.
El group by este order boy lo ejecuta internamente sin prestar atención al grupi.
Por eso lo puedo hacer.
Por eso puedo hacer un count de acuerdo a la cantidad de registro donde se están repitiendo nuestros
clientes.
Si lo voy a hacer de manera descendente, si yo ejecuto esto me va a traer la lista de mis často mers
de mis clientes ordenados desde el que más renta hasta el que menos renta.
En mi empresa son 599 registros y obviamente yo necesito el primer registro.
Entonces voy a tener que colocar un limit 1.
Cual es el cliente?
El mejor cliente que tiene mi empresa de alquiler de películas es el 148.
Es lo único que yo necesito en esta consulta porque no necesito ni el nombre.
No necesito nada más que saber el aydemir porque es el filtro que voy a tener que usar en mi consulta
principal para decir bueno, traeme solamente las películas, porque el planteo decía cuántas películas
que cumplan todas estas condiciones tengo en mi stor.
Entonces ahora, en base a esta sub consulta y en base a esta otra sub consulta, voy a armar la consulta
final.
La consulta final, que es una consulta que como les dije, es una consulta de 10 líneas de código,
pero tiene una complejidad.
Entonces si me pregunta el planteo, cuantas recuerden que lo que tengo que devolver es un count.
Vamos a hacer un select count
asterisco y lo vamos a llamar películas de que.De de la tabla film.
Cuántas películas de mi tabla film cumplen con las condiciones?
Y ahora vienen los dos chains.
Tenemos dos chains que uno que es un un soin a la tabla Inventory Inventory
Inventory donde el film, aydemir no hay mucho misterio es igual a i t i f film.
Muy bien, ahí tengo la tabla, soy unida.
Ahora lo que tengo que hacer es unir a la tabla rental.
Por qué?
Porque tengo que unir la tabla rental.
Muy bien, vamos a hacer otro soin a rental, le vamos a poner una R donde Inventory y aquí le voy a
poner Inventory.
Muy bien.
Ahora yo ya tengo mis tablas unidas.
Ahora lo que tengo que armar es el wheat.
El wear es lo complicado de este ejercicio, porque ahora tengo que decirle que.
El filma id.id.
Tiene que estar dentro de la lista de películas.
En esta sub consulta que nosotros hemos hecho aquí.
Esta lista en nuestro filma IDEI tiene que estar dentro de esta lista, por qué esta lista es la lista
que cumple con estas condiciones?
Que sea pg 13 y que esté en el estor 2.
Muy bien, entonces lo que vamos a hacer para no escribir de más.
Vamos a copiar esto.
Y lo vamos a pegar aquí dentro del in.
Muy bien, vamos a ordenar un poquito esto y vamos a darle forma para que sea un poco más visible a
nuestra consulta.
Entonces voy a listar para poder hacer el cout solamente los films que se encuentren dentro de esta
sub consulta.
Y además, porque recuerden que tengo que traer los este donde mi casa mera íbid sea el el más, el
mejor cliente que yo tengo aquí lo que voy a hacer.
Vamos a bajar esto porque aquí viene algo medio largo.
Lo que tengo que hacer es le he puesto Hunan para seguir enlazando en el wear y aquí voy a poner que
často merari guide ir
in.
En nuestra segunda sub consulta vamos a atraerla.
Cuál es la segunda sub consulta?
Ésta.
Esta es nuestra segunda sub consulta es la que nos va a permitir.
Fíjense que esta sub consulta lo único que hace es traerme una ide id y lo que le estoy diciendo.
Bueno, de la tabla renta solamente toma en cuenta donde el často mera id.id.
Coincida con ese ID.
Vamos a traerlo aquí.
Vamos a nuevamente.
Hacer un acomodamiento de todo el código.
Y vamos a colocar esto así.
Hay una condición más y que de rental solamente tome lo el 2.
Por qué es importante esto?
Porque el la consulta que yo estoy haciendo aquí.
Este filtro de películas no implica que aquí no me aparezcan películas que también están en el STOR
2, pero también están en el Star 1.
Entonces yo tengo que filtrarlo en el Bueller nuevamente al stor 2 stor Heidy es igual a 2.
Bueno ésta es la consulta, pero si yo corro esto me va a dar un error que quiero mostrárselos.
Voy a ejecutarlo, me va a dar un error.
Qué dice?
Que el limit no puede ser usado en sus consultas?
Entonces, aquí es donde yo empiezo a buscar soluciones, porque el límite es fundamental.
Yo necesito ese límite.
No puede aparecerme aquí una lista de clientes.
Me tiene que aparecer un solo Heidy de clientes.
Entonces lo que se hace comúnmente en estos casos es encapsular esta consulta dentro de otra su consulta.
Y aunque no lo crean de esa manera, funciona por algún motivo el chequeo de sintaxis.
Y esto ocurre en todos los utilitarios ocurren BorbÃn, socorren, Jaimie, se cuele o ocurre en todo,
porque no es un error del utilitario, no es una falla del Heidy, sino que es una falla del chequeo
de Maisí con la sintaxis.
Entonces lo que tengo que hacer aquí es un SELECT.
Vamos a colocarle e vamos a colocarle en vez de r de renta albana colocar un rent porque tenemos que
cambiarle el el prefijo porque todo esto va a tener su propio.
Su propio Scoob.
Entonces tienen que tener nombres diferentes.
Cast tomer ahí de hid from.
Y aquí le colocamos un selecto.
No hace falta colocar uniуn.
Aquí le colocamos directamente una sub consulta y esto lo que vamos a hacer es vamos a colocarle aquí
un rehén para que?
Para que esto me esté haciendo mención a este campo yo tengo que cambiarle los nombres.
Se entiende?
Inclusive aquí podría darme un error porque yo ya lo estoy usando aquí arriba.
No, no me da error.
Muy bien.
Esto es lo que nos dice que la resolución del ejercicio da 4.
La resolución del ejercicio da 4.
El planteo de cuántas películas con raiting pg 13.
Qué hay en el STOR 2?
Ha alquilado al mejor cliente de todos?
La respuesta es 4.
El mejor cliente que tenemos en nuestra compañía.
En el Stork 2.
Alquilado 4 películas que tienen el rating PG 13.
Esta es la resolución del ejercicio.
Esto es algo que yo quería que ustedes aprendan.
El encapsular una son KOP son sub consultá dentro de otra para poder utilizar el limit.
Con esto nos hemos encontrado en algún momento todos los DBA y lo hemos resuelto de esta manera.
Este es el ejercicio.
Tienen muchas cosas para aprender a lo largo de esta sección.
El usar funciones como count, como max, como min, como averÃas, como sum dentro de un order boy
dentro de un boy, lo pueden usar dentro de donde ustedes quieran y van a poder hacer lo que ustedes
necesiten y lo que les haya planteado el gerente o la persona, o el ejercicio o la necesidad que ustedes
tengan.
En este trabajo maravilloso que es el manejo de base de datos.
Bueno, les mando un saludo y seguimos con el curso.