1 つの列の最大値を取る結合を実行したい場合があります。これを行うには、max() と groupby- を実行する必要があります。これにより、最大の行から他の列を取得できなくなります (GROUP BY または集計関数に含まれていないため)。
これを修正するために、元のデータ ソースの最大値を結合して、他の列を取得します。ただし、私の問題は、これが複数の行を返す場合があることです。
だから、これまでのところ私は次のようなものを持っています:
SELECT * FROM
(SELECT Col1, Max(Col2) FROM Table GROUP BY Col1) tab1
JOIN
(SELECT Col1, Col2 FROM Table) tab2
ON tab1.Col2 = tab2.Col2
上記のクエリが 3 つの行 (column2 の最大値に一致する行) を返した場合、少し頭が痛くなります。
追加の列 col3 があり、上記のクエリによって返された行があった場合、Col3 の最小値などの列のみを返したいと思いました。これを行うにはどうすればよいでしょうか。