Java JPQL-获取集合中最频繁的项 问题

Java JPQL-获取集合中最频繁的项 问题,java,sql,oracle,jpql,Java,Sql,Oracle,Jpql,我正在尝试获取集合中属于表的最常用项。例如,如果我有表'Library',表'Book',表'Library'有一组'Book',我想从所有图书馆检索所有书籍。从这个结果,我想最频繁的书。问题是我需要这是一个查询,如果可能的话。如果我只是得到一个所有书籍的列表,但按事件排序,那也没关系 我试过的 选择l.books,将(l.books)计数为库l中出现的图书 从库l中选择b,l.books b按b.name排序 遗憾的是,第二本书并不是按所有书籍排序的,它对每一本藏书单独进行排序 如果需要更多信

我正在尝试获取集合中属于表的最常用项。例如,如果我有表'Library',表'Book',表'Library'有一组'Book',我想从所有图书馆检索所有书籍。从这个结果,我想最频繁的书。问题是我需要这是一个查询,如果可能的话。如果我只是得到一个所有书籍的列表,但按事件排序,那也没关系

我试过的
选择l.books,将(l.books)计数为库l中出现的图书

从库l中选择b,l.books b按b.name排序

遗憾的是,第二本书并不是按所有书籍排序的,它对每一本藏书单独进行排序

如果需要更多信息,我当然可以提供


我希望有人能帮助我:(

您的第一个查询非常接近。该查询的ANSI标准版本是:

SELECT l.books, COUNT(l.books) AS occur
FROM Library l
ORDER BY occur DESC
FETCH FIRST 1 ROW ONLY;

一些数据库使用
TOP
LIMIT
仅获取一行。

您的第一个查询非常接近。该查询的ANSI标准版本为:

SELECT l.books, COUNT(l.books) AS occur
FROM Library l
ORDER BY occur DESC
FETCH FIRST 1 ROW ONLY;

一些数据库使用
TOP
LIMIT
仅获取一行。

请注意OP想要JPQL的答案,而不是SQL“状态字段路径“g.categories”无法解析为集合类型”,其中g是我的库,categories是我的书。请注意OP想要的是JPQL的答案,而不是SQL“无法将状态字段路径“g.categories”解析为集合类型",其中g是我的图书馆,类别是我的书。如果你想要所有书中最常用的书,你不能从书表中选择吗?为什么从图书馆中选择?也许我没有得到你的要求如果你想要所有书中最常用的书,你不能从书表中选择吗?为什么从图书馆中选择?也许我没有得到你的要求耳鼻喉科