oracle不要重复记录,Oracle中去重复记录 不用distinct

用distinct关键字只能过滤查询字段中所有记录相同的(记录集相同),而如果要指定一个字段却没有效果,另外distinct关键字会排序,效率很低 。

8530d7ff72f8fb6595c0784dd97c8492.png

select distinct name from t1 能消除重复记录,但只能取一个字段,现在要同时取id,name这2个字段的值。

select distinct id,name from t1 可以取多个字段,但只能消除这2个字段值全部相同的记录

所以用distinct达不到想要的效果,用group by  可以解决这个问题。

例如要显示的字段为A、B、C三个,而A字段的内容不能重复可以用下面的语句:

select A, min(B),min(C),count(*) from [table] where [条件] group by  A

having [条件] order by A desc

为了显示标题头好看点可以把select A, min(B),min(C),count(*) 换称select A as A, min(B) as B,min(C) as C,count(*) as 重复次数

显示出来的字段和排序字段都要包括在group by 中

但显示出来的字段包有min,max,count,avg,sum等聚合函数时可以不在group by 中

如上句的min(B),min(C),count(*)

一般条件写在where 后面

有聚合函数的条件写在having 后面

如果在上句中having加 count(*)>1  就可以查出记录A的重复次数大于1的记录

如果在上句中having加 count(*)>2  就可以查出记录A的重复次数大于2的记录

如果在上句中having加 count(*)>=1  就可以查出所有的记录,但重复的只显示一条,并且后面有显示重复的次数----这就是所需要的结果,而且语句可以通过hibernate

下面语句可以查询出那些数据是重复的:

select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1

将上面的>号改为=号就可以查询出没有重复的数据了。

例如 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 ---还是这个可行。

有一面试题说:distinct去重复的效率很底下,我在网上看到这遍文章的方法好像说是用 group by  having  效率很高了?

我在了一个测试,有一商品表,26万条记录,只有商品编号建了索引,对品牌名称字段做 distinct

select brand,count(*) from tab_commbaseinfo  group by brand having count(*) =1

平均时间是:0.453

select distinct brand from tab_commbaseinfo

平均时间是:0.39

搞不懂是否还有其它方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539491.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

miui游戏驱动程序偏好设置_米粉必看:小米官方教你如何关闭 MIUI 广告 - 小米,MIUI...

IT之家 11 月 9 日消息 小米的 MIUI 在用户心中的口碑一直是比较好的,但该系统也并非完美,被吐槽的较多的一个点就是系统内的广告比较多。今天,小米官方微博 小米服务那些事 分享了几个能够减少 MIUI 广告的方法,米粉不妨了解一下…

Spring Cloud Zuul网关 Filter、熔断、重试、高可用的使用方式。

时间过的很快,写springcloud(十):服务网关zuul初级篇还在半年前,现在已经是2018年了,我们继续探讨Zuul更高级的使用方式。 上篇文章主要介绍了Zuul网关使用模式,以及自动转发机制,但其实Zuul还有更多的应用…

oracle 9 插入日期,oracle date日期类型 精析

一、date1.date、sysdate格式说明展示date类型,展示格式既可以为:YYYY/MM/DD,也可以为YYYY/MM/DD HH24:MI:SS;其存储格式只有一种:YYYY/MM/DD HH24:MI:SS展示格式一:当你只存年月日时,date实际存…

为什么使用NativeJdbcExtractor

原文:http://blog.csdn.net/hehexiaoyou/article/details/21019171---------------------------------------------------------------------------有时候必要会对数据库clob、 blob数据型进行操作,再加上spring 环境不得不要启用NativeJdbcExtractor 来…

CentOS 7.1下KVM的安装与配置

由于没有物理机可用,在自己的VMware Workation中CentOS 7搭建完成。 首先查看VMware Workation是否支持虚拟化,把红框内打钩即可。 虚拟化开启并安装CentOS系统,建议CentOS安装64bit。我的环境用的是CentOS 7。进入系统,首先查看服…

软件生成问候图片_这些社交软件你玩过几个?

提到聊天软件,我们的手机肯定安装有微信QQ,不过微信QQ都是主打熟人社交,而下面几个软件都是陌生人社交。这些社交软件,总有一款你安装过。注意,非按排名介绍。第一款:陌陌陌陌是一款基于地理位置的开放式移动视频社交应…

通过Sqoop实现Mysql / Oracle 与HDFS / Hbase互导数据

下文将重点说明通过Sqoop实现Mysql与HDFS互导数据,Mysql与Hbase,Oracle与Hbase的互导最后给出命令。一、Mysql与HDFS互导数据环境: 宿主机器操作系统为Win7,Mysql安装在宿主机上,宿主机地址为192.168.66.963台虚拟机操作系统为Ubu…

Android5.0新控件

谷歌在推出Android5.0的同时推出了一些新控件,Android5.0中最常用的新控件有下面5种。 1. CardView(卡片视图) CardView顾名思义是卡片视图,它继承FrameLayout。它是一个带圆角的背景和阴影FrameLayout。CardView被包装为一种布局…

python中要使用导入全部的是什么符号-在python格式字符串中使用标点符号

这是因为您可以使用格式迷你语言来访问对象的属性.例如,我经常在自己的自定义类工作中使用它.假设我为每台需要处理的计算机定义了一个类. class Computer(object): def __init__(self,IP): self.IP IP 而现在我想对整个计算机做一些事情 list_comps [Computer(name,"19…

oracle 读懂10046视频,10046、10053、实操记录

10046是一个Oracle的内部事件(event),通过设置这个事件可以得到Oracle内部执行系统解析、调用、等待、绑定变量等详细的trace信息,即帮助我们解析一条/多条SQL、PL/SQL语句的运行状态,这些状态包括:Parse/Fetch/Execute三个阶段中…

linux重定向文件被修改后,Linux服务器修改.htaccess文件实现301重定向

出于 SEO、PR 值传递、网址转换的目的,在网站初建和网站迁移时我们都需要使用 301 重定向,通常包括域名对域名,目录对目录和一个独立网址对另一个独立网址的重定向。在虚拟主机上作 301 重定向,最常用的方法有2种:第一…

Druid使用起步—在javaWeb项目中配置监控

原文章:http://my.oschina.net/u/568779/blog/152813 ---------------------------------------------------- druid wiki 当我们在javaWEB项目中使用到druid来作为我们的连接池的时候,一定不会忘了添加监控功能。下面我们就来看一下,在一个…

[译] 想帮助用户做决定?你的APP可以这样设计!

原文地址:Design your app for decision-making原文作者:Jeni译文出自:掘金翻译计划本文永久链接:github.com/xitu/gold-m…译者:PTHFLY校对者:ryouaki想帮助用户做决定?你的APP可以这样设计&am…

ip地址管理系统_门禁监控管理系统项目总结

门禁监控管理系统项目总结1、门禁管理设备(IFACE802) 16台 ,都有独立的网线到控制的房间。IP地址从 192.168.1.101--192.168.1.116。(地下一层 新家的最后一间是在附近的一个房间接的网线。一层的大门 有1台控制器和IFACE802 部署了2根网线)2、门禁控制的IP地址 192.168.1.1173…

linux mount命令衔接,Linux mount命令详解:挂载Linux系统外的文件

Linux mount命令详解:挂载Linux系统外的文件《Linux挂载》一节讲到,所有的硬件设备必须挂载之后才能使用,只不过,有些硬件设备(比如硬盘分区)在每次系统启动时会自动挂载,而有些(比如 U 盘、光盘)则需要手动进行挂载。…

targetFilterLifecycle的作用

targetFilterLifecycle的作用&#xff0c;有需要的朋友可以参考下。 在web.xml中进行配置&#xff0c;对所有的URL请求进行过滤&#xff0c;就像"击鼓传花"一样&#xff0c;链式处理。 配置分为两种A和B。 A:普通配置 在web.xml中增加如下内容&#xff1a;<fi…

平板电脑可以插u盘吗_有手机还需要平板电脑吗 酷比魔方iplay30平板电脑评测

原标题&#xff1a;有手机还需要平板电脑吗 酷比魔方iplay30平板电脑评测一、前言&#xff1a;前段时间我们一帮60岁左右的退休老头、老太太到农家乐去玩&#xff0c;玩累了就开始喝茶&#xff0c;一坐下来&#xff0c;人人都把手机掏出来&#xff0c;看着他们看手机的姿势&…

[8086汇编]利用栈翻转内存数据

assume cs:codesegcodeseg segmentdw 1h, 2h, 3h, 4h, 5h, 6h, 7h, 8h, 9hdw 9 dup(?)start:; 设置栈段mov ax, csmov ss, ax; 36 9 * 2 * 2mov sp, 36sub bx, bxmov cx, 9 s_push:mov ax, cs:[bx]push axadd bx, 2loop s_pushsub bx, bxmov cx, 9 s_pop:pop cs:[bx]add bx, …

面向多媒体 linux 版本,基于MX Linux 的 AV Linux 新版发布,此AV非彼AV

原标题&#xff1a;基于MX Linux 的 AV Linux 新版发布&#xff0c;此AV非彼AV作者&#xff1a;Linux迷链接&#xff1a;https://www.linuxmi.com/av-linux-2020-11-23-mx-linux-19-3.html经过六个多月的开发&#xff0c;面向多媒体的AV Linux发行版已发行了新版本&#xff0c;…

Spring的PropertyPlaceholderConfigurer应用

1. PropertyPlaceholderConfigurer是个bean工厂后置处理器的实现&#xff0c;也就是 BeanFactoryPostProcessor接口的一个实现。PropertyPlaceholderConfigurer可以将上下文&#xff08;配置文 件&#xff09;中的属性值放在另一个单独的标准java Properties文件中去。在XML文件…