Duda oracle seleccion

Albert
17 de Noviembre del 2008
Tengo esto pero me da el fallo "la subconsulta de una sola fila devuelve más de una fila"

select q.titulo from alquiler q
where (select count(q.titulo) from alquiler q group by q.titulo)
= (select max(count(q.titulo)) from alquiler q group by q.titulo)
;

Lo que quiero es el titulo de la tabla alquiler que cumpla que su numero de veces alquilado (count(q.titulo)) sea igual que la pelicula que mas veces se ha alquilado (max(count(q.titulo)) , los select del where me dan el resultado que espero, uno me saca todos los alquileres de las distintas peliculas y el del mx me saca el maximo de veces alquilada, pero cuando hago la comparacion me dice "la subconsulta de una sola fila devuelve más de una fila" y no entiendo porqué, no se que es lo que hago mal. Hace poco que programo SQL y aún estoy aprendiendo...

mimabh
17 de Noviembre del 2008
Hola, te falta igualar el titulo de la query principal con el de la query en el que cuentas el nº de líneas de cada tiulo. Quedaría así:

select q.titulo from alquiler q
where (select count(q.titulo) from alquiler r where q.titulo=r.titulo group by r.titulo)
= (select max(count(q.titulo)) from alquiler q group by q.titulo)
;

espero que te sea de ayuda.