OracleSQL重复记录无明显
从T1中选择不同的名称可以消除重复的记录,但只有一个字段可以被接受,id、名称的2个字段的值现在同时被占用。
选择不同的ID,T1的名称可以接受多个字段,但只能删除所有2个字段的相同记录。
因此,用群体的方法来解决这个问题并不能达到预期的效果。
例如,要显示的字段是a、b和c三,并且不能用以下语句重复字段的内容:
从{表}中选择a、min(b)、min(c)、计数(*)
有条件的可以为{ }
为了显示好的头可以选择使用一个min(b),min(c),计数(*)A作为选择a,min(b)作为b,min作为c(c),计数(*)作为重复。
显示字段和排序字段包含在组中
但是显示的字段包有min、马克斯、计数、AVG、总和和其他不能分组的聚合函数。
作为min(b),min(c),计数(*)
一般情况写在后面。
聚合函数的条件是在
如果在前一句中添加计数(*)> 1,则可以检测记录大于1的重复次数的记录。
如果在前一句中添加计数(*)> 2,则可以检测记录大于2的重复次数的记录。
如果我们在上句中加上(计数)> = 1,我们可以找出所有的记录,但只重复一个项目,重复显示重复次数。这是我们需要的结果,语句可以通过Hibernate。
下面的语句可以用来发现这些数据是重复的:
选择字段1,字段2,从字段名称1(字段2)计数(*),计数为(*)> 1
将上面的>数字改为=数字,你可以找出不重复的数据。
例如
复制代码代码如下所示:
select count(*)从(选择GCMC,gkrq,计数(*)从gczbxx_zhao T组
计数(*)> = 1阶的gkrq)
SELECT * FROM gczbxx_zhao viewid在哪里(选择最大(viewid)从gczbxx_zhao组
GCMC)以gkrq降序或这是可行的
。
有一个面试问题:明显重复的效率很低。我在网上看到了这篇文章的方法,好像它对团队很有效率。
我参加了一个测试,列出了26万条记录,只有商品编号的索引,并且对品牌的名称字段有区别。
复制代码代码如下所示:
选择品牌,计数(*)从tab_commbaseinfo集团品牌具有计数(*)= 1
平均时间是:0.453。
复制代码代码如下所示:
选择不同的品牌tab_commbaseinfo
平均时间是:0.39。
没有其他方法可以理解。