我正在尝试返回两列值出现多次的行。请注意,这不是优先事项。例如,在表格中..
ID Name Country
1 Dave UK
2 Jim UK
3 Dave UK
4 Dave US
5 Jim US
然后它会返回第1行和第3行,但不会返回第1行和第3行。这是因为" Dave"和"英国"仅出现在那些行中。我正在努力实现一个HQL查询来获取它。为了实现目标,我尝试将名称分组:
from Runner r group by r.name having count(r.name) > 1
但我收到以下例外:
Column "RUNNER0_.ID" must be in the GROUP BY list;
我读到了为什么这在逻辑上是必要的,所以现在我不知道我将如何实现这个功能。
我使用的是Grails 2.4.4,JDK 7,Hibernate 4.3.6.1
答案 0 :(得分:1)
您可以尝试使用带有子查询的exists
搜索重复项。
select r
from Runner r
where exists
(
select rn
from Runner rn
where rn.id <> r.id
and rn.name = r.name
and rn.country = r.country
)