2 つの int フィールド (id、month) を持つテーブル t1 があり、いくつかの値を入力しました。出力として見たいのは、(月のidの数)の最大値です。次のコードを試してみましたが、正常に動作します。
select id,max(freq) as maxfreq from
(select id,month,count(*) as freq
from t1
group by id,month) a
group by id
order by maxfreq desc
結果は次のとおりです。
ID MAXFREQ
1 3
2 3
3 1
4 1
これで問題ありません。over partition by 句を使用してこれを達成するにはどうすればよいですか? そして、どちらがより効率的ですか?実際、私のテーブルは数千のレコードで構成されています。したがって、サブクエリを実行することは良い考えではないと思います! 助けてくれてありがとう。これがフィドルです