Sql去重
distinct:用于返回唯一不同的值。
注意:1、语句中select显示的字段只能是distinct指定的字段,其他字段是不可能出现的。
2、distinct必须放在开头 如select distinct name from table
group by:“根据(by)一定的规则进行分组(Group)”
它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。
注意:1、按指定的列分组,这必须在查询结果中包含一个聚集函数 如(AVG 、MAX 、MIN、SUM、COUNT)
2、group by 是先排序后分组;
表名table
ID Name Address Telephone
1 张三 哈尔滨 123456789
2 李四 上海 784512357
3 王五 北京 759878456
4 张三 香港 785641231
ID唯一,去掉Name重复的记录。保留以ID最大,生成如下表:
ID Name Address Telephone
2 李四 上海 784512357
3 王五 北京 759878456
4 张三 香港 785641231
此时需要显示多余的字段故不能使用distinct方法!!
正确写法:先根据单个字段(Name)来判断,只保留有id最大的记录,再进行筛选
select*from table where ID in
(select max(ID) from table group by Name having count(Name)>0)
错误写法:实际上Group By已经将Name,Address,Telephone同时进行分组
select max(ID),Name,Address,Telephone from table group by Name,Address,Telephone
显示结果:
ID Name Address Telephone
1 张三 哈尔滨 123456789
2 李四 上海 784512357
3 王五 北京 759878456
4 张三 香港 785641231
Sql去重的更多相关文章
- Sql去重一些技巧
下午的时候遇到点问题,Sql去重,简单的去重可以用 DISTINCT 关键字去重,不过,很多情况下用这个解决不了问题.重复的数据千变万化,例如:类似于qq.微信的最近联系人功能,读取这些数据肯定要和消 ...
- Sql去重语句
海量数据(百万以上),其中有些全部字段都相同,有些部分字段相同,怎样高效去除重复? 如果要删除手机(mobilePhone),电话(officePhone),邮件(email)同时都相同的数据,以前一 ...
- 记录一次惊心动魄的sql去重
)) )) url 为判重依据,保留最大id其他的数据状态改为删除状态. concat()函数,为字符串拼接函数 从外到内分析sql 第一层四个条件界定,第一个是source渠道,第二个是未删除状态, ...
- sql去重;同一条数据出现多条取一条的sql语句
理论上相同数据个别字段值不同重复问题: 1.某字段重复,其他字段值不同时,按重复字段分组只取一条的sql语句(eg:相同的数据某个字段值有差别导致存储两条或多条无意义重复数据的情况)select s. ...
- SQL去重之distinct和group by的应用
遇到一个需求,要去重查出某张表的字段一和字段二,但是查出来的结果要按照表中记录的创建时间排序. 于是,第一时间就想到了使用distinct这个去重专用语法了: select distinct col1 ...
- sql 去重关键字 distinct
单列去重: mysql: drop table test;create table test(id int(4));insert into test values(1),(2),(3),(4),(1) ...
- SQL 去重 显示第一条数据 显示一条数据
需求描述:根据某一个字段或几个字段去重来显示任一条数据,第一条或最后一条. 数据样式如下图: 尝试解决: --count(*)方法(只把条数为1条的显示出来了,超过1条全部过滤了) select * ...
- mysql 查询语句去重 通过sql去重
url 在表中具有唯一性: 由于定时任务的多进程/代码的多线程/定时任务的调度/脚本的执行时间,导致,破坏了唯一性: SELECT COUNT(1) FROM test_error_tmpUNION ...
- SQL 去重 DISTINCT 语法
SQL SELECT DISTINCT语句 在表中可能会包含重复值.这并不成问题, 不过有时你也许希望仅仅列出不同(distinct)的值. 关键词DISTINCT 用于返回唯一不同的值 语法 SEL ...
- SQL -去重Group by 和Distinct的效率
经实际测试,同等条件下,5千万条数据,Distinct比Group by效率高,但是,这是有条件的,这五千万条数据中不重复的仅仅有三十多万条,这意味着,五千万条中基本都是重复数据. 为了验证,重复数据 ...
随机推荐
- Attribute在.NET编程中的应用(三)
用于参数的Attribute 在编写多层应用程序的时候,你是否为每次要写大量类似的数据访问代码而感到枯燥无味?比如我们需要编写调用存储过程的代码,或者编写T_SQL代码,这些代码往往需要传递各种参数, ...
- RabbitMQ和SpringBoot的简单整合列子
一 思路总结 1 主要用spring-boot-starter-amqp来整合RabbitMQ和SpringBoot 2 使用spring-boot-starter-test来进行单元测试 3编写配置 ...
- 《Linux命令行与shell脚本编程大全》第十二章 使用结构化命令
许多程序要就对shell脚本中的命令施加一些逻辑控制流程. 结构化命令允许你改变程序执行的顺序.不一定是依次进行的 12.1 使用if-then语句 如下格式: if command then ...
- 【Java入门提高篇】Day2 接口
上一篇讲完了抽象类,这一篇主要讲解比抽象类更加抽象的内容--接口. 什么是接口呢?先来看个栗子: /** * @author Frank * @create 2017/11/22 * @descrip ...
- re部分
0x01.Writeup-RE-CM_2 题目: 解题思路: 1.这个是经过xor的,王老师提示说用xortool,于是放进kali,装好之后执行 xortool CM_2.exe -b, 0.out ...
- OPENGLES 绘制纹理带黑圈pre-multiplying
1. 问题 在进行 OpenGL 纹理混合的过程中,遇到一个诡异的现象,两个纹理混合的效果出人所料: 将一个ALPHA渐变的[胡须]加在另一张图片上,这个 [胡须]是由外向里逐渐增加透明度的,也就是最 ...
- ShoneSharp语言(S#)的设计和使用介绍系列(3)— 修炼工具
ShoneSharp语言(S#)的设计和使用介绍 系列(3)- 修炼工具 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp. ...
- redis 梳理笔记(一)
一 redis 数据格式 短连接 长连接pconnect tcp协议 交互数据格式 交互采用特殊的格式 \r\n 1."+"号开头表示单行字符串的回复 set aa aa ...
- Sonar常见问题分析
1.Equality tests should not be made with floating point value 代码举例: if (result == num) //result和num均 ...
- 解决tomcat部署包错误
Context namespace element 'annotation-config' and its parser class [org.springframework.context.anno ...