相关疑难解决方法(0)

如何通过SQL中的另一列选择MAX(列值),DISTINCT的行?

我的表是:

id  home  datetime     player   resource
---|-----|------------|--------|---------
1  | 10  | 04/03/2009 | john   | 399 
2  | 11  | 04/03/2009 | juliet | 244
5  | 12  | 04/03/2009 | borat  | 555
3  | 10  | 03/03/2009 | john   | 300
4  | 11  | 03/03/2009 | juliet | 200
6  | 12  | 03/03/2009 | borat  | 500
7  | 13  | 24/12/2008 | borat  | 600
8  | 13  | 01/01/2009 | borat  | 700
Run Code Online (Sandbox Code Playgroud)

我需要选择每个不同的 …

mysql sql max distinct greatest-n-per-group

727
推荐指数
13
解决办法
142万
查看次数

JPQL选择具有最大值的记录

我正在尝试选择具有特定列的最大值的记录,这是我到目前为止所拥有的:

select o from Order o 
    where o.orderNumber = :orderNumber
    and o.version =
        (select max(o.version) from Order o where o.orderNumber = :orderNumber)
Run Code Online (Sandbox Code Playgroud)

这似乎是生成SQL:

SELECT *
FROM   Order
WHERE  ordernumber = :orderNumber
       AND orderversion = (SELECT Max(orderversion)
                           FROM   order
                           WHERE  ordernumber = :orderNumber);
Run Code Online (Sandbox Code Playgroud)

我认为以下SQL会更有效:

SELECT *
FROM   order ord
       INNER JOIN (SELECT ordernumber,
                          Max (version) AS version
                   FROM   order
                   WHERE  ordernumber = :ordernumber
                   GROUP  BY ordernumber) mx
         ON ord.ordernumber = mx.ordernumber
            AND ord.version = mx.version; 
Run Code Online (Sandbox Code Playgroud)

无论如何我可以在JPQL中表达这个吗?

(对于在特定字段上选择具有最大值的记录相关的问题,大多数在线答案似乎表明我提出的上述JPQL ...)

hibernate jpa hql jpql

3
推荐指数
1
解决办法
2549
查看次数

标签 统计

distinct ×1

greatest-n-per-group ×1

hibernate ×1

hql ×1

jpa ×1

jpql ×1

max ×1

mysql ×1

sql ×1