PARTITION BY在H2 db中不起作用

Pan*_*kaj 4 oracle h2

我正在使用PARTITION BY子句对结果进行排序。在多列此问题Sql Order by中提到了使用PARTITION BY的详细信息。当我在Oracle中运行时,它工作正常。我在单元测试用例中使用H2 db。当我在H2 db上运行相同的查询时,它不起作用。H2中的已知问题吗?是否有任何其他解决方案可以同时在Oracle和H2中使用。

Gor*_*off 5

我不认为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;
Run Code Online (Sandbox Code Playgroud)

尽管这应该在两种环境中都可以运行,但是该over表单在SQL中的性能可能更好。

  • 性能甚至无法比拟。我仍在寻找可用于测试这些查询的内存数据库。 (2认同)
  • 注意:这些年来这似乎已经发生了变化,H2 支持分区。来源:https://www.h2database.com/html/functions-window.html (2认同)