作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用这个 JPA 查询:
SELECT DISTINCT e.label FROM Entity e
GROUP BY e.label
ORDER BY COUNT(e.label) DESC
我没有得到任何错误,结果排序几乎正确,但有一些值是错误的(两个值被翻转或一些单个值完全错位)
编辑:
将 COUNT(e.label) 添加到我的 SELECT 子句解决了这个查询的这个问题。
但在同样包含 WHERE 子句的类似查询中,问题仍然存在:
SELECT DISTINCT e.label, COUNT(e.label) FROM Entity e
WHERE TYPE(e.cat) = :category
GROUP BY e.label
ORDER BY COUNT(e.label) DESC
最佳答案
您可能需要在 SELECT 子句中包含 COUNT(e.label)
:
SELECT DISTINCT e.label, COUNT(e.label)
FROM Entity e
GROUP BY e.label
ORDER BY COUNT(e.label) DESC
更新:关于第二个查询,请阅读 8.6. Polymorphic queries 部分EntityManager 文档。看起来,如果您以需要多个 SELECT
的方式进行查询,那么 ORDER BY
将不再起作用。使用 TYPE
关键字似乎就是这种情况。引用上面的链接:
from java.lang.Object o // HQL only
Named 接口(interface)可能由各种持久类实现:
from Named n, Named m where n.name = m.name // HQL only
请注意,最后两个查询将需要多个 SQL SELECT。 这意味着 order by 子句没有正确地对整个结果集进行排序。(这也意味着您不能使用 Query.scroll() 调用这些查询。)
关于java - 如何在 JPA 中按 count() 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7001226/
我是一名优秀的程序员,十分优秀!