Comment utiliser MAX() sur une sous-requête?

Je suis nouveau à l'Oracle et SQL monde. J'ai un léger problème avec une requête que je ne peux pas comprendre pour la vie de moi, j'ai passé quelques heures à essayer différentes approches et je ne peux pas obtenir le résultat que j'attends. Donc voici ma requête:

SELECT *
from(Select membership.mem_desc,membership.mem_max_rentals,membership_history.mem_type,      
    count(membership_history.MEM_TYPE) as membership_count
    from membership_history
    JOIN membership ON membership.mem_type = membership_history.mem_type
    group by (membership_history.mem_type,membership.mem_desc,membership.mem_max_rentals)
    ) g
WHERE g.membership_count = (select MAX(membership_count) from g); 

De sorte que la requête interne fonctionne parfaitement et renvoie les deux résultats. Maintenant que j'ai ces deux valeurs, je suis à essayer de comprendre comment retourner la ligne avec la valeur maximale de membership_count qui Est l'endroit où je reçois coincé. Dans la requête ci-dessus j'ai essayé d'utiliser le MAX() dans la clause where, mais à l'intérieur que de sélectionner, je reçois l'erreur "table not found" (qui signifie "g"). Donc ma question est comment puis-je utiliser le MAX() la fonction sur les résultats de mon sous-requête? Des idées ou des suggestions seraient grandement appréciés!!!!!

Si vous n'êtes pas au courant de cela, sqlfiddle Oracle est disponible et vous pouvez jouer avec différents formats de déclarations.

OriginalL'auteur user1916441 | 2013-04-24