00:00
呃,刚才呢,我们说了这种方法,它求连续三天,但是。求连续什么十天啊,超过三天,这个就很麻烦啊,所以呢,我们要用另外一种方式,另外一种方式呢,其实呃,这种思路啊,利用了一个数学的一个前提条件干什么呢?啊来,我把这个在这写一下,叫解法。二啊,对吧,它用到了一个等差数列减等差数列的一个东西。一个等差数列减一个等差数列,如果说这两个等差数列的差值相同的话,那减出来的结果是什么?是一样的,对不对,来看一下我们要的数据集,刚才在我拿下。C。啊,我们还是对着这个数据集进行分析。在这。
01:02
他不要吧?这个量。这个不好,你看一下我们要的是不是连续三天啊。那你连续三天,这是一个等差数列不?是吧,对吧,等差数列,因为用得塔Di可以做吧,啊得塔好,那如果说我给它来一个一。二。三四。五这个是六。你剪一下看看。第一个用这个地方就用data塔A减负一对吧,加负一或者用data塔萨写个一也可以吧,对吧?啊,当然前提这个日期的格式是不是也要转变一下对吧?要转变一下,那这个减出来等于多少呢。一杠一,我就直接这样写一下,OK吧,它呢,是不是也是一杠一,它呢一杠一,而到它呢,变成一杠二了,是不是,然后它呢。
02:04
一杠三了对吧,那他呢一杠三。你发现诸葛你了?还不会做吗?讲在这块的时候。那我现在要连续三天的。你发现一有几个呀。三个吧,那假如说我有一个1月1号呢。前面有个一号呢。二前面1月1号,那应该就是一在前面了,我们只能往后加是吧,假如说这个地方是2017斜杠。一如果这个是五呢,那这个是四对吧?那往下这个是五,这个是什么六这个是什么七它呢。一杠一它呢,一杠一它就变成什么一杠二了吧?啊,它是一杠二发现出问题了吗。
03:05
数最后这个东西有多少个吧,啊,你要超过三,连续三天及以上的,那我这个最后出来的这个数据大于等于什么三是不是同样的结果。好,那。这个其实就用等差数列,两个等差数列啊,这个就简单很多,而且你随便加天数。你加千数,最后我在搜个里边三改成十,改成20,随便改吧,啊,你要连续20天的,我把三改成20,你要连续十天的,把三改成什么十,那也就是说首先第一步无论怎么样,我们是不是还要过滤出来2017年。然后说填单日排放量超过100的对不对。对吧,这个还是原收集,然后按照同一个用户底下按照时间进行排序,并给他一个什么。编号,这个编号我们要想一下到底用还是。
04:04
都可以。因为前面我们按照用户以及时间进行购办了,是不是去重了。对吧,啊去重了,所以呢,他肯定不会一样的,既然不会一样,三者任选。对吧?啊,我们说的那三个有区别,是在有相同数据的时候才有区别了啊,没有相同数据大家都一样啊,所以呢,你随便选一个啊,就去捡就行就行,那我快速的把这个写一下,把这写下好,解法二第一步。第一步呢,我直接从这个地方拿一下,OK吧,因为第一步是一样的嘛,对吧?啊第一步拿一下。好把这个拿过来啊,这个呢,我把它多一点放在后面。好看,后面第二步怎么写?叫。按照日期进行排序,并。按照用户给时间一个标记,是不是啊,按照。
05:04
17、进行培训。并给。每一条。这种思路其实挺难想的,应该每一条数据什么一个标记啊,一个标记好,那我们写一下select。有的逗号,然后是什么。第一步我们已经把数据格这个日期格式化好了吧,啊格式化好了,那你就不用管了,呃,给每一条数据的一个标记,是不是,我们把这个贝塔DT是不是有,然后我们说了随便用一个吧,很随便,那我们就是用最简单的,因为它字少嘛,对吧?哦快这个地方是不是按照用户进行分区,同时按照什么。进行一个排序,不需要道具吧,不需要倒叙,那这个呢,我们给他取名叫吧,好,最后这个是from。
06:03
第一表,第一表又写什么勾吗?不用了啊,直接这样写他,我把他干什么?好了。第二啊,这个少了一个半啊,第一表给他拿过来吧,把他扔进来。进来啊,这个保存我们不管,我们先把这个数据集给他干什么,保留一份我们看一下,等会对比一下吧。这个是不是我们第一次解法一的答案了,解法一在这吧,啊,答案我放在这,等会呢,做一个对比啊,做个对比好,这个第二我们来把它跑一下吧。给他一个诶标记。走。好,现在就出现了很多的什么12345 2345,对吧,现在我们要做的是不是把它检查呀,对吧啊。
07:02
第三步,将日期。减去什么?当前的。Rank值是不是?值,那这个就简单了,来有保留吧。对,机器保留OK吧,然后减它的一个值。是下划线sub a都可以。对吧,好,那这块呢,我们用sub用sub sub是直接减对吧,前面的一个日期是不是电量DT。逗号后面呢?对吧,啊,那这个呢,我们把它叫做贝塔,叫什么名字呢。呃,电量上网下划线OK。OK吧,啊就取个别名啊,取个别名好,然后这个东西捡完了之后。T2表对不对?
08:02
就做一个相减是吧,啊做个相减就做T表交表呢,我们也给它干什么。跑一把。啊,把它拿过来。放在这儿。就是做一个相见。做一个相。好,现在数据就来了,那我们就来看一下这个是不是我们八号用户,诶不是。八号用户在这吧,你把八号用户一勾。哪个是连续的?4567吧,啊,主要是在于是不是这个时间出现了什么。三次以上的对吧?啊,出现了三次以上,出现了三次以上,好,那我们怎么过滤出来,现在已经是相减了,第四步我们怎么过滤出来连续三天的。过滤出连续三天成为100的用户。
09:06
按照用户名。和我们力的这个什么。相减的这个值叫data sub k这个东西做什么?分组对不对,我们要你看啊,我们说这个数据24567是我们要的。对吧,我们要的数据,那这个数据的特点是不是。用户加这个东西count大于什么?对不对,那你接下来对应这个数据集要做的操作,是不是按照它以及它进行分组求count新啊,然后count新大于等于三的是不是你要的数据。对吧,那这个东西我们来写一下啊。谁那个?哎。
10:01
有啊,把这个保留了,然后呢。对,DT。现在。要在这。如果我写在这儿,会不会有问题呢?因为最后啊,来我先不写。From这个什么T3表对吧,这个表示一个什么T3,那我们from这个T3表。然后这个时候你要什么事勾派了,勾派什么U的ID逗号是吧?得塔萨RK吧啊得塔减2K是不是对这个进行分组啊,进行分组之后接下来呢。Heavy。
11:01
抗心大于等于三。是不是做这个事好,那问题来了,我们最终是要跟原表进行关联,你这个DT不写还真不行。因为你少了GT,你能关联到原表。不行啊,你是可以把用户关联出来,那有什么用啊。我我要的不是这个用户吧,我是要的用户哪三天连续登录的,哪四天连续登录的吧,那想一想这个地方。对,用窗口函数是不是搞定这个事啊,对吧?啊用窗口函数可以搞定这个事,那如果说我们不想那个DT的话,是不是可以这样写一下。对吧,啊,用窗口函数,因为窗口函数可以给每一条数据来开窗,是不是保留原来的日期啊,对吧?所以这个时候假如说你还要未来要给原导进行关联的时候,这块是不是要改用窗法入啊,假如说我们简单一点,哎,不做那个事了啊,不做交易了,那这块因为做教育最后还是要改这个时间格式,是不是因为刚才我们说了还是有时间格式的问题,所以不改了,不改的时候,假如说不跟原表进行关联的时候,是不是可以这样做。
12:10
对吧,啊用户ID啊,用快递好,那我们把这个东西干什么,跑一把。哎,括号,其实这里面还有一个小问题,大家有没有发现。没有啊。没有就那就没有问题了。这个我们只能跟原表来对比这个数据吧,我们对比一下。二五八九十十一十三十四,二五八九十十一十三十四对吧,二五八九十十一十三十四没问题吧,啊也就是说这个数据已经拿出来了,只不过说最后你要想时间的话,应该用包函数。啊,用勾函数啊这个点,那这种方式呢,是我们求这个什么,连续多少天,假如说我要现在十天改了,我不要连续三天几以上,我要干什么,十年级以上只要改。
13:10
十对吧,啊,你这个搜狗右变吗?不用吧,你想想看,刚才如果三天变十天,你那个so。简直就要疯了对吧啊,没法洗啊,没法系,这个呢,就比较方便一点啊,要方便一点。这就是第二种思路,大家要去记住,就是连续问题都可以这样的方式去做。
我来说两句