gpt4 book ai didi

java - 如何在 JPA/EclipseLink 中使用 "group by"子句查询 select 中的记录数?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:53:24 25 4
gpt4 key购买 nike

假设您有以下 JPA 查询:

select car.year, car.month, count(car) from Car car group by car.year, car.month

在我们查询结果之前,我们需要知道这个查询将返回多少条记录(用于分页、UI 等)。换句话说,我们需要这样的东西:

select count(*) from 
(select car.year, car.month, count(car)
from Car car group by car.year)

但 JPA/EclipseLink 不支持“from”子句中的子查询。有解决办法吗?

(当然你可以使用纯 SQL 和原生查询,但这不是我们的选择)

最佳答案

可移植 JPA 解决方案:

select count(*) from Car c where c.id in
(select MIN(car.id) from Car car group by car.year, car.month)

你也可以这样:

select COUNT(DISTINCT CONCAT(car.year, "#", car.month)) from car

但我预计由于使用文本值进行操作,这会降低性能。

关于java - 如何在 JPA/EclipseLink 中使用 "group by"子句查询 select 中的记录数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37994085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com