PostgreSQL で SQL を学習していますが、ネストされた集計関数に関する問題に遭遇しました。
最大量のプロパティを持つ私有所有者の詳細を見つけようとしています。ここでは、privateowner と propertyforrent の 2 つの関係があり、propertyforrent が外部キー ownwerno を持っています。
私の問題は、集約関数をネストしようとしているところにあると思われますが、それを回避する方法がわかりません。
注:- 私が使用しているデータベースには、propertyforrent の属性 ownwerno にタイプミスがあります。
私が使用しようとしているコードを以下に示します~:-
SELECT o.fname, o.lname, telno
FROM privateowner o
WHERE o.ownerno = (SELECT p.ownwerno
FROM propertyforrent p
HAVING COUNT(p.ownwerno) = MAX(COUNT(o.ownerno)));
付随するエラーは次のとおりです:-
ERROR: column "p.ownwerno" must appear in the GROUP BY clause or be used in a
aggregate function
LINE 3: WHERE o.ownerno = (SELECT p.ownwerno
^
********** Error **********
ERROR: column "p.ownwerno" must appear in the GROUP BY clause or be used in an
aggregate function
SQL state: 42803
Character: 78
どんな洞察も素晴らしいでしょう。