Oracle去除重复记录 不用distinct 支持hibernate |
发布时间: 2012/9/19 16:51:06 |
用distinct关键字只能过滤查询字段中所有记录相同的(记录集相同),而如果要指定一个字段却没有效果,另外distinct关键字会排序,效率很低。 select distinct name from t1 能消除重复记录,但只能取一个字段,现在要同时取id,name这2个字段的值。 所以用distinct达不到想要的效果,用group by 可以解决这个问题。 例如要显示的字段为A、B、C三个,而A字段的内容不能重复可以用下面的语句: 为了显示标题头好看点可以把select A, min(B),min(C),count(*) 换称select A as A, min(B) as B,min(C) as C,count(*) as 重复次数 下面语句可以查询出那些数据是重复的: 例如 select count(*) from (select gcmc,gkrq,count(*) from gczbxx_zhao t group by gcmc,gkrq having count(*)>=1 order by GKRQ)
select * from gczbxx_zhao where viewid in ( select max(viewid) from gczbxx_zhao group by gcmc ) order by gkrq desc
本文出自:亿恩科技【www.enkj.com】 |