在 JPQL 查询中获取 MAX of COUNT

Get MAX of COUNT in JPQL Query

我正在尝试使用以下查询检索所有部门的最大员工人数:

SELECT MAX(n) FROM (SELECT COUNT(e) FROM Employee e GROUP BY e.department) n

无法解析此查询,我认为这是 FROM 子句中嵌套的 SELECT。有什么方法可以仅使用 JPQL 重写查询吗?

编辑:我还将查询重写为:

SELECT COUNT(e) FROM Employee e GROUP BY e.department ORDER BY COUNT(e) DESC

是否可以获取此查询的第一行?

which I assume is the nested SELECT in the FROM clause

我猜这是因为您正在尝试将 MAX 聚合函数应用于整个别名行集 n,而不是特定列。而是尝试:

SELECT MAX(n.employeeCount) 
FROM (SELECT COUNT(e) AS employeeCount FROM Employee e GROUP BY e.department) n

Is fetching the top row of this query possible?

当然可以,只需使用 query.setMaxResults(1)