私は Oracle と SQL の世界は初めてです。私の人生では理解できないクエリにわずかな問題があります。さまざまなアプローチを試すのに数時間を費やしましたが、期待する結果が得られません。だから、私のクエリは次のとおりです。
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);
したがって、内側のクエリは完全に機能し、2 つの結果が返されます。これらの 2 つの値が得られたので、私が立ち往生し続けている Membership_count の最大値を持つ行を返す方法を見つけようとしています。上記のクエリでは、where 句で MAX() を使用しようとしましたが、その select 内で「テーブルが見つかりません」(「g」を意味する) というエラーが発生し続けます。私の質問は、サブクエリの結果に対して MAX() 関数をどのように使用するのですか? どんな考えや提案も大歓迎です!!!!!