JPQL - 获取集合中最常用的项目

时间:2017-06-22 15:50:49

标签: java sql oracle jpql

问题

我试图获取属于某个表的集合中最频繁的项目。例如,如果我有Table' Library'和表' Book'和'图书馆'有一本书的集合,我想从所有图书馆中检索所有图书。从这个结果来看,我想要最常用的书。问题是我需要这是一个查询,如果可能的话。如果我只获得所有书籍的清单,但按事件排序,也可以。

我尝试过什么

SELECT b FROM Library l, l.books b ORDER BY b.name

server '***.***.***.***', user: 'rails', roles: %w{web app}

第二个遗憾的是并没有按所有书籍排序,它会自行对每个系列进行排序。

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

我希望有人可以帮助我:(

1 个答案:

答案 0 :(得分:0)

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

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

有些数据库使用TOPLIMIT来获取一行。