我有以下结构。不是在一张表中,而是为了保持简单:
Press | Batch | Start time
-------------------------------------------------
PRESS_1 | 2051 | 2017-05-18T00:00:00
PRESS_1 | 2052 | 2017-05-19T00:00:00
PRESS_2 | 2053 | 2017-05-20T00:00:00
PRESS_2 | 2054 | 2017-05-16T00:00:00
PRESS_3 | 2055 | 2017-05-12T00:00:00
PRESS_3 | 2056 | 2017-05-18T00:00:00
PRESS_3 | 2057 | 2017-05-19T00:00:00
Run Code Online (Sandbox Code Playgroud)
我想获得每台印刷机的最后一个计划批次。结果应该是:
Press | Batch | Start time
-------------------------------------------------
PRESS_1 | 2052 | 2017-05-19T00:00:00
PRESS_2 | 2053 | 2017-05-20T00:00:00
PRESS_3 | 2057 | 2017-05-19T00:00:00
Run Code Online (Sandbox Code Playgroud)
但是,当我按按分组并且还想选择批次时。我有义务将批次放入“分组依据”条款中。
Select x.Press, x.Batch, max(x.StartTime)
From myTable x
Group by x.Press
Run Code Online (Sandbox Code Playgroud)
如何使用 JPQL 实现这一点?
由于您想选择每次按下最大 start_time 的条目,您还可以使用下面提到的内容 -
Select x.Press, x.Batch, x.StartTime
From x
where (press,starttime) in
(select press, max(starttime)
from x group by press)
Run Code Online (Sandbox Code Playgroud)
让我们试一试,请告诉我。