PARTITION BY 句を使用して、結果の並べ替えを行っています。PARTITION BY の使用に関する詳細は、この質問Sql Order by on multiple column に記載されています。Oracleで実行すると正常に動作します。単体テスト ケースに H2 db を使用しています。H2 db で同じクエリを実行すると、機能しません。H2 の既知の問題ですか? OracleとH2の両方で機能する代替ソリューションはありますか?
5739 次
1 に答える
6
H2 がウィンドウ関数 (別名分析関数) をサポートしているとは思わない。ただし、標準 SQL を使用してリンク内のクエリを実行できます。
SELECT t.*
FROM yourtable t join
(select vendorname, max(incidentdate) as maxdate
from yourtable yt
group by vendorname
) vn
on vn.vendorname = yt.vendorname
ORDER BY vn.maxDate DESC, t.VendorName ASC, t.IncidentDate DESC;
これは両方の環境で実行されるはずですが、over
フォームはおそらく SQL でより適切に実行されます。
于 2013-06-05T01:41:29.217 に答える