distinct在sql中的应用
在采集的一个站点里面汇集了较多的数据,大概采集了有几十万,同一行业站点的数据几乎都采集了,当然标题是没有改掉的,还是原标题,这是为了方便筛选重复数据的,这几十万的数据里面汇集了较大比重的重复数据,本来想要把这些数据删除掉,但小虎博客苦于没找到好的方法,最后还是想到了 sql 中 distinct 参数,这个参数已经N久没有用过了,其作用就是将重复的数据给过滤掉不显示,看来用在这个采集站点里是最为合适不过了,下面重点的去了解一下 distinct 在 sql 中的应用吧。
distinct作用:
在数据表里,往往会重复许多值,比如输入两个字段的“小虎博客”,如果我们只想要输出一个“小虎博客”的时候,就可以用到 distinct 了,利用 distinct 可以只显示出来一个“小虎博客”。
distinct语法:
因为是需要输出值的,所以需要用到 SELECT,语法如下:
- SELECT DISTINCT 列名称 FROM 表名称
distinct实例一:
为了更直观的看到 distinct 的作用效果,我们来进行一下使用 distinct 之前和之后都是怎样的效果,比如我们有如下 Orders 表:
如果不使用 distinct 来进行读取,则 SQL 为 “SELECT Company FROM Orders” 语句,哪么读取出来的结果就为如下形式:
我们可以看出,重复值 W3School 被两次显示出来了,如果内容是重复的,则只显示一次就可以了,下面再来看一下使用 distinct 之后输出的值是怎样的,先来看一下使用 distinct 之后的 SQL 吧,如下:
- SELECT DISTINCT Company FROM Orders
运行之后的结果形式为:
现在 W3School 只被显示了一次。
distinct实例二:
再浅显的一个小实例,如果我们有如下的 表A:
在 sql 中使用 distinct 来去除重复的数据,运行后的效果如下:
distinct实例三:
还是接着 distinct实例二,我们再稍微将 sql 语句更改一下,不仅去除表 name 里面的重复值,且连 id 的值一同去除掉,SQL语句如下:
- select distinct name, id from A
执行后的效果如下所示:
我们可以看到执行后的效果里面已经将 name 字段和 id 字段里面重复的值都已经去掉了。