00:00
哈喽,大家好,我是数据打购人孙向恩,是某场不知名的数据分析师,今天呢我们开始讲S狗知识点大全的第二讲,就是讲一些狗的基础知识,这篇文章呢,我同样的也发布在了公众号数据万花筒之上,如果你想要阅读这篇文章,请扫描这边的二维码进行阅读,也可以关注我们,扫描我们的公众号二维码关注我们。今天呢,我们会去着重的去讲解S的基础语法,这些基础语法就包括了去重去合函数,常用的一个数值处理函数以及条件筛选函数和排序。首先我们先来讲去重函数,去重的话,我们主要用到的函数是distinct的这个函数,如果我们想要从某张表中筛选没有重复的ID,我们应该怎么样写呢?我们来看下面这个例子,这个例子的话,我们主要是要从product。
01:00
表筛选出没有重复的ID,我们只需要在想要的字段之前,然后加上一个distinct,它就会自动给我们一个去重,得到一个没有重复的一个这样的ID。下面我们来一起看一下聚合函数,聚合函数它包括了求和、求均值、求最大值、均最小值以及求数量。我们在用聚合函数的时候,就只需要把我们想要聚合的字段放到聚合函数的括号里面就好了。我们来看几个例子,比如第一个例子就均值的,我们是想要求product price这个字段的均值,然后就把这个字段放在我们这合函数的括号里面,然后这个字段是于哪张表呢?就是来自于product这张表。这个代码的意思就是我们想要从product这张表里去求出product price这样的一个均值,并且把它命名为average price,同样的,我们去看sum。这个函数用法也是一。
02:00
样的,我们想要从old items这张表中去求quality的一个总和,那么在什么情况下去求这个总和呢?就是当我们的订单编号等于20005的时候,去求这个订单总和,这是我们一个求值函数,同样的,这个count它返回的是一个数量,但是我们来看它,它第一个是一个count心,这里第二个它是一个count某个字段。这两个语语法有什么区别呢?就是从本质上来讲,就是count的心它会返回包括空值这些数量,比如说某一行它的这个字段它为空,它也会把它记为一,但是当我们去count custom email这个字段的时候,它就会自动的去忽略那些为空的值,只计算不为空的值去统计它的数量。这就是一个抗的心和count的字段名的一个区别,求最大值,最小值也是一样的啦,就是需要把我。
03:00
而且要求的这个字段的名称,把它放到聚合函数里面,那么我们具体来看一下把如果是我们想要把多个聚合函数放在一起用,应该是怎么去用呢?我们看下面这个例子,这个例子的示例就是说我们想要从product这张表里面选择出日期,并且聚合每一个日期下面有多少条类目,找出这些类目当中最小的一个价格,最大的一个价格和一个平均价格,找出这些价格之后去group by一个DT,对,这就是我们一个综合的一个应用。好的,下面我们一起来看数值处理函数。数值处理函数的话,它主要是将一些数值性的数据,然后转化成这些数值型数据所对应的余数、绝对值、正弦值、正切值等等。我们下面来看一个例子进行说明,下面这个例子。它主要是想要从。
04:00
这张表中筛选出我们的DT,同时去统计它的一个item的一个数量,其次的话,数它主要是返回的是一个数值,四舍五入后的一个小数,它认留数AB的话,它想要回这个的一个绝对值,后面这个函数的话,它主要是想要返回product price它的一个平方根。好的,下面我们一起来看一下条件筛选。条件筛选比较常用的函数是well,我们来看几个例子进行说明。第一个例子,我们想要从product这张表中筛选出product price等于3.49的产品名字和产品价格,我们在写语法的时候,就只需要把will把它放在from后面,然后就可以得到我们一个筛选条件,如果是我们有多个筛选条件怎么办呢?我们就and去连接will的两个筛。
05:00
选条件如下面事例所示,我们想要筛选出这个ID等于这么多,并且价格小于等于四的这些产品的ID、价格和名字,就如我们下面这个事例这样写,如果是well连接的两个条件,它是一个或的关系,我们就用or来连接。下面这个例子给出一个很好的示范。我们想要从product的这张表中筛选出ID等么多或者是D等于这么多的一个产品的名字或者是价格。在条件筛选当中,除了用well这个函数之外呢,我们还可以用in这个函数,我们来看一下它的具体用法。我们想要从product这张表中筛选出ID等于DDL01或者是BS01的产品的名字和价格,并且它的这个产品的名字。其实这里的in的用法和上面的用法是差不多的。
06:00
它都是表示一个或者的关系好的。下面我们一起来讲一下通配符。通配符它是在搜索数据库的数据的时候水的通配符,它可以替代一个或者是多个字符,那么circle去通配这些字符的时候必须与一起连用。下面我们通过几个例子进行说明。我们首先来讲百分号通配符,在下面这个事例中呢,它主要是想要从product这张表中找出name中含有并bag这样字符字符的product ID和product name。除了百分号同配符的话,我们还有下划线同配符。下面这个例子说明的是我们想要从product的一张表中找出product name,然后包含in teddy这样的字符的一个product ID和除了分号通配符,下通配符,我们还有中括号通配符。我们来看几个例子进行说明,如我想。
07:00
寻找G或者是M开头的的名字,我们就可以这样写,我们想要从customer这张表中找出customer contact以J或者是M开头的contact,它的一个联系方式,就这样写就好了。如果我们想要找出不是或者是开头的,我们可以在后面加一个监括号,进行一个否定。讲完通佩符之后,我们来看一下having的分组过滤。我们下面这个例子给出的是我们想要对product这张表中价格为四元以上的商品去统计其购买次数,并且筛选出被购买两次以上的商品。我们先看一下这个语法是怎么写的,From from是PRODUCT1张表,然后筛选条件是筛选出价格大于等于四的这些数据,然后找出大于等于四的这些ID,并且统计他们的一个购买次数。统计完之后呢,我们。
08:00
需要对他的这个ID进行一个goodbye之后,我们想要去找出这些购买次数大于等于二的商品,这就是一个分组过滤。分组的操作在哪里呢?分组我们就是通过了购买次数对这个商品的ID进行一个分组,分组完之后呢,我们想要筛选出这些购买次数大于等于二的组,这就是我们的一个分组过滤。那么having和well它有什么区别呢?Well它主要是对这张表进行一个全的一个筛选,Having它主要是对我们分组后面的数据进行一个筛选,也就是说对我们的这个统计出来的购买次数这个组别进行筛选,这就是他们之间的区别。好的,下面我们一起来讲一下数据排序,数据排序主要用到的语法是order by,我们看几个例子进行具体的说明。首先,我们想要从PRODUCT1张表中找出product ID价。
09:00
和名字,并且按照价格递减的顺序,名字递增的顺序进行排序,那哪里看出递增呢?In product name后面它没有写一个递增或者是递减,而在生活当中它默认的是一个递增。第二个例子他给出的是一个分组查询过滤排序,一个综合应用。这个例子主要是想要从order的it这张表中,然后去找出每一个order它被订购了多少次,然后并且找出订购次数大于等于三的这些字段,同时的话去按照和它的一个order number进行一个排序,这就是我们一个分组排序过滤查询的一个综合应用。那到现在为止呢,我们今天的搜狗知识大全第二讲就已经全部结束了,我们简短的回顾一下今天讲了哪些内容,首先我们讲了数据的去重,其次的话,我们讲了聚合函数,讲了各个聚合函数它的一个用法,接下来的话我们讲了。
10:00
常用的一些数值处理函数,包括一些求余呀,求四舍五入呀,它的余弦正弦值呀,这些都是比较简单,大家可以经常反复的去练一下,然后就可以学会。其次的话我们还讲了条件筛选,包括well in、通佩匹配以及having去分组过滤,最后的话我们讲了一个order这样的一个排序的方法,欢迎大家持续关注我,关注我的公众号、视频号以及我的知乎号,数据万花筒,谢谢大家,我们下期再见。
我来说两句