Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在JPQL中嵌套聚合函数_Java_Spring_Jpa_Jpql - Fatal编程技术网

Java 如何在JPQL中嵌套聚合函数

Java 如何在JPQL中嵌套聚合函数,java,spring,jpa,jpql,Java,Spring,Jpa,Jpql,我在春天为一个大学项目工作。我必须开发一个允许用户创建“会议”的系统。 我已经映射了用户和集合(会议)之间的关系,如下所示: 用户(1)如果我理解正确,您需要获得所有用户的平均集合点以及每个用户的集合点数量 根据中定义的JPA2.1规范,JPQL中AVG函数的参数必须是数字 此外,您将无法在JPQL中引用子查询(如果没有/exists构造AFAIK) 因此,您应该创建一个查询来获取集合的总计数 select count(r.id) from rendezvous r 然后除以用户数 然后您可以

我在春天为一个大学项目工作。我必须开发一个允许用户创建“会议”的系统。 我已经映射了用户和集合(会议)之间的关系,如下所示:


用户(1)如果我理解正确,您需要获得所有用户的平均集合点以及每个用户的集合点数量

根据中定义的JPA2.1规范,JPQL中AVG函数的参数必须是数字

此外,您将无法在JPQL中引用子查询(如果没有/exists构造AFAIK)

因此,您应该创建一个查询来获取集合的总计数

select count(r.id) from rendezvous r
然后除以用户数

然后您可以获得每个用户的会合次数:

select count(r.id) from rendezvous r group by r.user.id
鉴于此,我建议使用sql查询(本机查询)而不是jpql查询。JPA/JPQL更适合处理对象,而不是经过精细调优的sql查询

例如,您可以轻松获得标准偏差:

select count(r.id) from rendezvous r
select count(r.id) from rendezvous r group by r.user.id