Duda consulta
Soy novato ene sto de sql asi que no estoy muy puesto, estoy con una base de datos de peliculas, clientes y alquiler y quiero hacer una consulta que me diga quien alquila mas.
Hago esto SELECT DNI_CLIENTE,COUNT(*) FROM ALQUILER GROUP BY DNI_CLIENTE; que me da el numero de alquileres totales; Hago la relacion
SELECT CLIENTES.NOMBRE FROM CLIENTES INNER JOIN (ALQUILER INNER JOIN PELICULAS ON PELICULAS.COD_PELICULA=ALQUILER.CODIGO_PELICULA) ON ALQUILER.DNI_CLIENTE=CLIENTES.DNI_CLIENTE;
Y me falta saber el maximo el cual sacaria de la primera consulta pero creo que eso se hace mejor con una tabla temporal, ¿alguien me puede decir como se hace una abla temporal a traves de la select de arriba? o una solucion mejor si la sabeis, uso oracle 11g.
He llegado a sacar esto pero me falla me da error en linea uno:
SELECT CLIENTES.NOMBRE FROM CLIENTES INNER JOIN (ALQUILER INNER JOIN PELICULAS ON PELICULAS.COD_PELICULA=ALQUILER.CODIGO_PELICULA) ON ALQUILER.DNI_CLIENTE=CLIENTES.DNI_CLIENTE WHERE ALQUILER.DNI_CLIENTE=(SELECT DNI_CLIENTE FROM (SELECT DNI_CLIENTE, COUNT(DNI_CLIENTE) INTO TEMPORAL FROM ALQUILER GROUP BY DNI_CLIENTE) WHERE COUNT(TEMPORAL.DNI_CLIENTE)=(SELECT MAX(DNI_CLIENTE) FROM TEMPORAL GROUP BY COUNT(TEMPORAL.DNI_CLIENTE));
Gracias a todos.
P.D. las 2 primeras consultas por separado funcionan, pero la grande de abajo no doy con la tecla para que me de el cliente que ams alquileres tiene.