社区
Java EE
帖子详情
关于Java 对数据库查询去重复的问题。
svgr314
2012-09-04 04:51:09
我使用Query query = em.createQuery(HQL);的方法来查询一张表(实体)。
HQL语句中想要对该实体中某个属性相同的记录进行去重(不是整条记录完全相同,是一个字段相同),只保留ID最大的那一条!
请问HQL语句该如何写?
貌似用distinct可以去重,但是不能指定过滤掉的是哪几条而保留哪一条!
...全文
465
10
打赏
收藏
关于Java 对数据库查询去重复的问题。
我使用Query query = em.createQuery(HQL);的方法来查询一张表(实体)。 HQL语句中想要对该实体中某个属性相同的记录进行去重(不是整条记录完全相同,是一个字段相同),只保留ID最大的那一条! 请问HQL语句该如何写? 貌似用distinct可以去重,但是不能指定过滤掉的是哪几条而保留哪一条!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zxhcloth
2012-09-05
打赏
举报
回复
忘了加注释了,上面的same是你说的相同的字段。
还有看了楼主的结贴率是0%,希望楼主问题解决了别忘了结贴,营造好的学习氛围。
zxhcloth
2012-09-05
打赏
举报
回复
HQL最终都会转换成sql,所以我给你写个sql吧,楼上们写的sql,思路上可以解决你的问题,但不是最好的方案,你这个问题其实是一个很经典的临界问题,一通百通,我给你“一”:
查询相同记录比最大ID小的
select * from table a
where exists (
select 0 from table b where a.same = b.same and a.id < b.id
)
查询相同记录最大ID的
select * from table a
where not exists (
select 0 from table b where a.same = b.same and a.id < b.id
)
删除相同记录比最大ID小的
delete from table a
where exists (
select 0 from table b where a.same = b.same and a.id < b.id
)
老韩同学
2012-09-05
打赏
举报
回复
写sql select * from 表名 a where a.id= (select max(id) from emp b where a.id=b.id)
辛格瑞拉
2012-09-05
打赏
举报
回复
delete from tab_1 a where rowid <(select max(rowid) from tab_1 b where b.属性=a.属性)
改改可用 ,祝你好运
老韩同学
2012-09-05
打赏
举报
回复
写sql的时候进行处理比如 select * from 表名 where id = (select max(id) from 表名 group by id)
wenhaoxp1987
2012-09-05
打赏
举报
回复
HQL
:select max(u.id) from User u group by u.userName由于Hibernate 要进行复合嵌套查询的话要配置映射文件的,所以建议用原生态的sql
SQL
:
select * from user t1 where t1.id in (select max(id) from user t2 group by t2.user_name)
svgr314
2012-09-05
打赏
举报
回复
= =0 卧槽…… 这年头60分都木有人看了吗?
svgr314
2012-09-04
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
order by id desc 就可以了 ,其实用 group by 也可以分组的。
[/Quote]
group by是可以分组,但是不能保留我想要的那条记录啊~
额…… 我说的这个id就是一个属性,不是那个主键ID啦。也就是保留某个字段最大的那条记录。
夜空中苦逼的程序员
2012-09-04
打赏
举报
回复
order by id desc 就可以了 ,其实用 group by 也可以分组的。
svgr314
2012-09-04
打赏
举报
回复
本人新手啊~ 求各位大大指教!!! T _ T
jpa mysql去
重复
查询_JPA查询数据
重复
问题
在使用JPA做查询的时候,有时候要把实体对应的所有关联项都查询出来。下面的SellerListing实体中。"specificationConfigs","listingDocs"都是集合。使用@EntityGraph生成的sql语句全是LEFT OUTER JOIN。如果"specificationConfigs"有4条,"listingDocs"有3条,那查询出的数据就是3*4 = 12条。并...
Oracle数据库基础02-Oracle数据库的结构与简单查询
1.Oracle数据库中的数据是按照表的形式来存储的; 表结构实例: 在数据库操作中,查询是最常用的操作,也是最复杂的操作。根据不同的需求可以写出不同的SQL语句,甚至同一个需求也可以写出多个SQL语句。就像数学中的一题多解一样,其中肯定有一种高效率的写法。所以写好一个SQL语句是非常重要的,它甚至可以影响程序的执行效率,进而决定程序的好坏。 为了从数据库中查询数据,需要使用SQL中的...
jpa mysql去
重复
查询_JPA 查询Distinct多对一示例
JPA教程 - JPA查询Distinct多对一示例DISTINCT运算符在功能上等同于同名的SQL运算符。收集结果集后,将删除
重复
值,以便只返回唯一结果。以下JPQL在多对一映射中使用DISTINCT运算符。例子下面的代码来自Department.
java
。package cn.w3cschool.common;import
java
.util.ArrayList;import
java
.ut...
oracle 查的数据去
重复
数据,Oracle查询和过滤
重复
数据
对数据库某些意外情况,引起的
重复
数据,如何处理呢?----------------查
重复
:select *from satisfaction_survey swhere s.as_side = 0and s.project_no in (select ss.project_nofrom satisfaction_survey sswhere ss.as_side = 0group by ss.pr...
dbx-agents-offline-windows-x64.zip
dbx-agents-offline-windows-x64.zip
Java EE
67,535
社区成员
225,843
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章