00:00
好这个,嗯,其实这几个呢,来看一下,来看这。视频热度其实也还是拿那个观看数来的啊,这个就之前大家如果说没有讲那个OPPO内容函数的时候,对吧?呃,假如说你里边有什么music呀,还有那个animal啊等等那个什么,还有娱乐啊,Entertainment啊等等这些东西,你需要这样去做,一个一个的来看一下这个地方,这个就特别喽。就这。就最后KID等于没有,之前有同学也提到过这种想法吧,这也可以我一个一个求,求了完之后给它干什么。给它合到一块去也可以吧,啊,这种太low了,我们主要讲的不是这种,是O那种方式,然后还有一个问题,其实我们做这些需求之后,大家发现了,但凡跟类别相关的一个需求,第一它是不是挺多的跟类别相关的需求。
01:00
对吧,第二只要跟类别相关,是都要做什么事,都要有一个子查询进行炸裂对不对。对吧,那如果在生产环境当中,第一我们一般的会建输仓,书仓呢,本身就是要做分层,我们后面有个项目,专门就讲这个输仓如何决定这个分层,好假如说你公司刚起步,或者公司比较小,没有做这个书仓的时候,遇到这种需求,你也要想一个问题,就是你这个炸裂的这个表是不是应用了很多次。对吧,所以你应该干什么。建一个临时表。建一个中间表,提前炸列好,然后把炸列好的数据放在这个中间表里边,接下来用的时候就简单了,不用每一次都写自查询,你想想看效率是不是会高很多,对吧?啊,这个是我们讲这个需求的一个点,就在这儿,我们要去创建一个什么。来看这,这跟之前那张表哪出现了,不不一样啊。
02:01
类别的对吧,啊ID之前叫是一个什么。数组啊,只是这个类型不一样,之后呢,往这里面插入数据,怎么插入数据呢,主要大家看。炸裂之后插入进去对吧,那接下来你任何关于类别的一个操作就简单了啊,生产环境当中也一样,你我们后期在做数仓,整个搭建数据仓库,也就做了这个事儿。把某一些字段呢,提前处理好,提高某一些表的复用性能,懂这意思,因为这样可以大量真的能节省大量的一个时间啊,要不然你每一个。查询里边是不是都会多一个这个字开屏了,现在不用我直接扫描这张表吧啊,效率会高很多,所以呢,这个是才是这个的一个重点,要记得建中间表,像这种大量复用的表一定要见中间表啊,一定要在建中间表,那我们把它划一下啊拿过来。
03:00
走好,然后呢,把这个表的数据给他导进来,也就是说这个呢,我就不写了,因为炸裂这个呢,刚才已经写过很多次了,对吧,导数据我给他导一下,给他导一下。好之后呢,是我们要求每一种类别的一个top ten啊,每种类别的一个,那就是用这种方式,这种比较low吧。对吧,啊用费用,那同样的每种那个流量是不是也一样的,对吧,这个呢,你可自己去跑一下我们要讲的这个。对吧,就最后我要把每一种都干什么,假如说你有十种类别,我一次性给他。全部求出来,前十要用到什么?要用到窗口函数和rank是不是啊,要用到rank,我们等这个数据导完,导完之后呢,我们要用到这张表,鼓励video cat这张表吧,啊用到这张表啊,也就是说最后呢,这三个需求我们一块说了就是这个。这个五六跟八啊,568呢一块说了,我们虽然现在数据还没有搞好,但是这个色不一样,我们写错了怎么写。
04:09
谁来的?我们要求这个类别总数的一个排名。总数的前十名。怎么来?Category ID要不要?注意,我们现在从这张表拿出去了,我记得ID是这个命名。这样命名的对吧,啊还是驼峰命名的,那就这样开要把,然后接下来呢。总数对吧。然后这个叫cat,然后from哪张表。鼓励这个中间表吧,啊,鼓励video这个开张表,然后呢。
05:07
要吧。这个category ID,那这样第一步我们求出来是什么内容啊。每一个种类有多少个视频?对吧,啊,视频,哎,不对哦啊,多少个视频,这不对啊,我们要求的是每个类别像观看数对吧?啊,怎么这样求,这不对啊。这个这这个不得对,要三四,然后我们要求的是每个类别下观看数头对吧,那热度OK,那这个cat这ID还是要吧。Ad对吧,啊KID要第二个,他要的是。排名啊,看这个ID,然后呢,我们来一个VID,因为做一个区分嘛,到底是哪一个,它的一个观看次数比较高,那第三个应该是一个rank是。
06:07
我们就用RA了,然后有一个O函数括号。Over里边怎么来?Partition。按照谁,按照cat ID进行一个分区,同时按照谁啊。是不是观看数进行一个排名,而且是de?倒叙吧,对吧啊。这个呢,我们取名叫RK可以吧,啊取名叫K,好,那接下来是from这个什么,我们刚才这个。鼓励开这一张表啊,开这一张表,那这个时候我们所说的第一步,他在做什么事。给每一种。类别。
07:00
添加啊给每种类别,根据视频什么观看数。添加。Rank值对吧?值啊添加值,然后呢是。括号倒叙。对吧,啊倒叙添加值第二步就简单了吧,你不要前十吗,过滤。前十对吧?啊过滤前十这个就简单了,那select。海。ID。够了吧,啊VID那这样呃,因为我们要看一个排名的话,那我加一个这个VS进去可以吧。因为要不然你也看不出来到底是前几名前几名的问题对吧,加个那这块呢,我也加一个什么啊,这个没问题吧啊,然后是from这个T1表对吧?哎,From这个T1表。
08:02
然后。Well。RK小于等于十对吧?啊,我也不考虑这个重复呢,我也不管了,反正我就要这个十对吧?啊重复就是这这个意思啊好,然后呢,把它给它跑一下吧,啊前面加一个括号,然后给它拿过来,像那个什么VI那个K等于music这个我就不写啊,就不写了,因为之前如果说没讲这个OPPO和这个rank的时候。而这个have当中,它又不不支持那个非等值连接,那你是不是要一个一个的写,然后把它拼接起来啊,就很麻烦,其实啊,那我们把它拿回来。啊,这个数据已经导好了啊,已经导好了,然后呢,走。那这种就比较方便啊,你要记得这个分组套班,又又提到一次分组套班吧,其实在生产环境当中大量在用的。啊,大量内容因为这个分组套白。你要每天的对吧,哪个商品卖的好,或者说每天这个商品当中呢,哪些人购买的前三名的啊等等,因为他考虑的维度不止一个啊,不止一个啊,要有多个维度,在这个维度下,我要去求某一种维度的前三名对吧?OK,那这个前十名210条数据,210条数据,因为我们之前看到是不是21个类别啊。
09:22
还有印象吗?那就是说每一个类别应该是没有重复的,因为这个观看次数啊。这么大的一个数据说完全一样,这个。比较小吧,啊,可能性比较小,那每一种呢,都是我们所说的十个对吧?啊,每一种都是十个啊,这就一次性给他拿出来了,而我们之前所提到的music那种方式,一次性是不是拿十条,一次性拿十条,然后把十条十条给它拼接的一个吧,拼接的表是这意思,这就是我们所做的一个分组套盘啊,就是里边的一个。第五个需求,第六个需求和第八个需求三个呢,我们一块说了,而且呢,中间运用了一个点,就是这个地方嘛。中间表对吧?啊,如果说对于某一张表,而且是子查询的表,大量在使用的时候一定要想到用到什么中间表啊,用到中间表啊,到后面我们学了书仓之后,这个问题就自然就解决了,因为数据仓库整个的里面分层就是为了做这种事啊,提高复用的。
我来说两句