1.
我们今天聊点简单的,就一个单词DISTINCT。
2.
在数据分析处理过程中,我们经常需要去除查询结果中的重复值,保留截然不同的唯一值。对于SQL,这类问题,我们通常使用DISTINCT关键字处理。
其语法如下:
SELECT DISTINCT 字段名 FROM 表名
举个简单栗子。
如上图所示,Excel工作表的表名为“学生表”,A列是姓名,B列是学科,其中A列的姓名存在重复,比如“看见星光”,现在需要使用SQL语句提取不重复的学生名单。
代码如下:
SELECT DISTINCT 姓名 FROM [学生表$]
查询结果如下:
从查询结果可以看出,重复的人名已被剔除;但数据排列顺序也和数据源不同了。
事实上,系统的操作过程是先对查询结果排序,然后从中剔除重复值。
在Excel中,当查询结果是非中文时,比如数字和字母,DISTINCT处理后的结果明显为升序排列。
当查询结果是中文呢?其实中文也是按升序排列的……只是排序规则不是我们平常所熟知的拼音或笔划顺序。
……
如果需要去重的数据是多列,在DISTINCT关键字后指定多个字段名,彼此间使用英文逗号间隔即可。
依然使用上述例子,查询去除姓名和学科同时重复的值,语句如下:
SELECT DISTINCT 姓名,学科 FROM [学生表$]
查询结果:
从查询结果可以看出,只有姓名和学科同时都重复的(看见星光 文言文研究)才被删除了。
3.
今天的分享系不系很简单呢?
比起函数或者VBA来,SQL去重简直简单的不像话~
但需要说明的是DISTINCT可以处理的字符串最大长度为255,当字符串长度超过255时,会造成计算错误,同时查询结果也只返回255长度的记录。
……祝快乐吧!所谓快乐,就是时光在飞快中度过……下期见~
图文制作:看见星光
专业的职场技能充电站
领取专属 10元无门槛券
私享最新 技术干货