我想选择表的每一列,但希望在我的行的单个属性上有不同的值(示例中为City)。我不想要额外的列,如计数或任何东西,只是有限数量的结果,似乎不可能直接LIMIT结果在JPQL查询。
原始表:
ID | Name | City
---------------------------
1 | John | NY
2 | Maria | LA
3 | John | LA
4 | Albert | NY
想要的结果,如果我在城市做了明显的:
ID | Name | City
---------------------------
1 | John | NY
2 | Maria | LA
最好的方法是什么?谢谢你的帮助。
答案 0 :(得分:4)
在JPQL中,您可以这样做:
select e
from MyEntity e
where e.id in (select min(e.id) from MyEntity e group by e.city)
返回:
MyEntity [id=1, name=John, city=NY]
MyEntity [id=2, name=Maria, city=LA]
答案 1 :(得分:0)
关于JPQL的Dunno,但SQL将是:
SELECT x.*
FROM TABLE x
JOIN (SELECT MIN(t.id) AS min_id,
t.city
FROM TABLE t
GROUP BY t.city) y ON y.min_id = x.id
AND y.city = x.city