フィールドA、B、C、D、Eを含むテーブルABCから選択したいとします.Eは数値フィールドです。GROUP BY返されたフィールドの小さなサブセット
A
とB
の組み合わせに対して、最大値がE
の行を戻したいとします。これはどうすればいいですか?何をすればいいですかGROUP BY
?
私は、Eの周りにmaxを置いてA、BでGROUPしようとすると "not a GROUP BY expression
"というエラーが出ますが、A、BだけでGROUPしたいです。
私は
select A,B,C,D,max(E)
from ABC
group by A,B
を試してみましたが、これは動作しません。
どちらが優れていますか? row_number()列を含む中間テーブルを削除し、元のクエリのABCのWHERE句だけを使用して、AとBの各組み合わせに対して必要な行を取得する方法はありますか?言い換えれば、PARTITIONとWHERE節に必要な行を取り込むことを統合できますか? – user2371765
私はこれが好きなのが望ましいです。 (ABC.A 、ABC.B )の順にABC.E)= 1 rank()以上でパーティションを選択してください。この場合、「ここではウィンドウ関数は許可されていません」というエラーが表示されます。 – user2371765