00:00
好,那接下来我们看一下这个行转列,列转行,那首先这两个东西呢,我需要做一点说明,就是在你之后,假如说有的同学可能学的啊,听的有点模糊,然后去找一些资料,有可能网上把这些东西呢,把我这个地方的东西叫利润啊,把有的东西呢,把我这里边东西叫行列。都是有的啊,都是有的,因为这块无论叫行转列还是列转,它不是真正意义上我们说的把行变成列,列变成行。啊,我们看一下这两个,最后呢,我先说明一下,最后呢,我们在做总结的时候,再把这个再提一下啊,因为大用了之后才会有体会啊,才会体会,OK,第一个我们先不管它是行转的,还是我们直接看函数。第一个叫comp。慷慨什么意思?叫拼接?啊叫拼接,它可以干什么呢。你可以传任意个多个字符。任意多个字符,也就人家写的这个函数啊,是一个可变行三。
01:01
可变性三啊,要写清楚返回字符串拼接后的一个结果。好来我们看一下这个地方呢,刚才我们看到是contact对吧?Con contact括号,它还有一个什么contact位置对吧?啊,我们先看这个简单版,刚看的这个里边,假如说我有一个什么hello。我再来一个通告逗号,我再来一个word。能看明白它是怎么用的吗?它就直接把多个字符串干什么拼接起来了。啊,拼接起来了,是这意思,好,然后还有一个问题来看一下select t from这个dept啊,它更重要的不是在于拼接自己写的字符串,如果你非得拼接字符串,你直接写这个不就完了。对吧,更重要的在拼接什么。多喝六来。我可以写t select的心。哎,我是新了是应该是对吧,我要凭借这个什么DEP逗号,然后呢,我希望把这个D。
02:12
From。第一批。它跟在拼接多个列。对吧,那有同学说你这个中间呢,没有分割符,我以后看着不舒服,那我加一个什么。我加一个分隔符呗,你想用杠还是用斜杠无所谓,你加一个就完了,能懂这意思啊,这个呢,就是我们说说的行转列啊,这是把多个列里面的数据把它变成一列吧。对吧,多列,所以呢,我们之前所聊的什么行转列,列成行,不是真正意义上把行变成列,列变成行,它这个地方你要这样说的话,它应该是。合并列对吧,列转列啊,但是列转列这种呢,没有这种提法啊,你在网上搜的都是行转列,或者说是列转行啊这种的,也就是说他把多个列合并到一块是这个意思。啊,多个类合并到一块去了啊,这个是可以无限多的合并的,假如说我想把那个。
03:05
我再来一个中档对吧。再来个中了,然后拼接上谁啊,最后还有一个叫啊来走照样也能拼接进来了啊照就是你可以这个是一个可变的,你可以拼老长了啊都可以啊都可以好这是这个点,那接下来。看的位。Compare的位置这个东西呢,刚才我们看啊,我们拼接三个字段的时候。是不是里边要两个分隔符。没问题吧,要两个通的符是不?我们自己写了两次。太冗余了,是不是我们有时候在想这个东西我们能写一次可以用什么?啊,位置第一个参数呢,你先把分割符写。后面呢,你要拼接的内容。
04:00
啊拼内容,那我们看一下,我们先不用列,我们先还是同样的用hellowork对吧,那这个呢,是con的下划线位置对吧?符号这个时候第一个参数,假如说我用中杠来拼割拼接,先写一个什么。好,然后再写一个word对吧?啊这个呢,你就不用写那么多了L。啊,也就是说他把分隔符,如果你多个分隔符是一样的,我可以干什么。啊,提出来啊,做这个事用的啊,他可以提出来做这个事儿,那这个既然是字幕站可以,那按道理说我们应该我们习惯用什么。列吧,我们更多的在生产环境当中可能要拼接列,是不是我要拼接列?好,我要把今天再拼起来啊,我还不够,我还要凭什么?啊对,这个没有,他没有,因为直接是写字符传可以不要不要表啊第P。
05:06
Three它必须要一个数组是吧,那咱们这个数据集还得等会再用啊,等会再用。In was found,还得里边叫string,咱们这个是in对吧?啊,它是in特放,呃,那平天他们俩,他们俩是S是吧。还有樱桃啊,第p number还是樱桃啊,就是这个东西呢,还不行,我们等会把这个数据改一下,改一下OK,呃,现在呢,这个东西,但是我们从这个地方能看出来效果吧。从那个。啊,假如说这样,因为这个呢,效果还不明显,明显在这我再来一个什么。谷吧,对吧,走。也就是说只要写一次分割符就搞定了,对吧?刚才是这个,呃,参数有问题,等会呢,我们来调一下长的4B来看一下啊好,那这块呢,就是说它的一个变种板,相当于康泰的一个变种板,对吧?你有多个字段,很多字段要拼接的时候,你不要写很多分割符吗?
06:07
其实我们用抗K是不是也能完成这个操作?对吧,用康盖也能完成这个操作,但是呢,你要写一个,这中间写两个吧,啊,那这个就比较方便一点,我们直接写一个分隔符就搞定了啊,写一个分割符就搞定了,好继续还有一个函数。首先,Connected。叫收集,然后收集成一个set。Set这个东西有一个什么特点?就里面放的数据。不能重复。啊,不能重复,OK,那这个时候我们看一下啊。它可以干什么呢?将某个字段的值进行去重汇总。注意某个字段也就是一个列,那举个例子,假如说这个地方,而且产生欧数组这块呢,是它自己产生欧数组,假如说现在有一个ad。
07:11
ID这个列,OK,它里面呢,有A有B有C,如果说我可以写一个什么connect,刚,然后把这个ID放进去,出来的结果就是一个什么。ABC的一个数组。其实它是属于一个聚合函数,能感觉出来吗?那李总,因为你本来属于三行吧。是不是多行啊,多进一出对吧,出来一个数组嘛,啊出来一行,你把三行变一行,这个就是我们所说的聚合,跟some是不是一样的道理啊。Some是不是,哎,假如十个数,十个数相加,得到一个结果吧,得到一个结果是这个意思啊,得到一个结果,那这个地方呢,是一样的,哎,那我们可以做一个测试。Select新from那个de PT这样的。
08:05
我们把谁呢?我们把这个12,十三十四十跟一个数组里面了来,谁用刚才那个函数叫。还有connect,那你他们俩什么区别?有序不是吧,赛驱虫嘛,应该是驱虫嘛,好呃,这个地方呢,其实更多的用他赛多一点,然后我们把谁啊de PT。Number给它连起来,From这个DT这张表。它是聚合函数,聚合函数是不是要应该要走mmr的对吧。
09:00
好,放到了一个什么数组里边,刚刚才是四行数据吧,现在变成了一行。啊,变成一行啊是这意思,好,那我们接下来这有了这个数组啊,就可以跟刚才我们这个地方来连用了,因为刚才他要一个什么spring,对吧?啊要欧瑞斯,那我们可以把它拼接在一块,好现在我们要怎么写呢?来。Contact,之前with是不是他一直报不成功啊,那这个时候我加一个connect。Set,然后再括号这个什么DEP。Number number,然后这个位置前面应该再加一个什么分割符,假如说呢,这个中间我想十二十三十四十呢,用一个分割符把它变一下,对吧?好,然后。DPT。赵子。还是这个int,它总是这个啊,咱们一直用的dp number,那换一个dp number不行,那个d name可以是吧。
10:01
因为他要行,就是之前一直是那个的问题,把它改成四倍。看一下这个结果,因为第p number还是类型的啊,还是报这个类型有问题。D是不是也有四个呀,对吧。OK,那它是把四个东西用一个分割符干什么?拼接到一块了吧,啊四个,因为原始数据是这样的,所以来个新from这个什么de。是不是这四个东西按照我们comp开的位这种方式,用中杠把它们全部连起来了啊,是这用这个东西好,那接下来问题来了,那说这么多感觉好像没什么用。对吧,好像之前你们做的需求当中没有遇到过这种系统。但在有啊什么样的来看一下。
11:00
数据集。把它放在这。数据集放在这。然后我们要变成什么样子,来看一下。能看懂这个需求吗?没问题吧,就是说我要找出来。即是射手座。又是A型血的有哪些人,而且这些人呢?我还要把它输出到一。对吧,啊,本来你可以找出来这些人没问题,我可以按照go。星座,然后逗号血型,然后查他这个名字吧,啊,相同的输出到一块,这个没问题,但是现在要把它输出什么。推合,那这个有同学在想,你做这个事有什么用呢?真要用之前我们有一个那个,然后我们继续啊好,现在呢,需求就摆在这了。
12:01
对吧,原始数据在你这,然后实际数据也在这,然后把建表语句拿过来,因为介表语句呢,需要有字段,对吧,介表语句我给他拿过来看到C。啊,放在这,我们想这个东西应该怎么写了,那然后性别血型对吧?啊,然后这个。姓名,然后星座血型,首先这两个东西,假如说我先不聚合它。这两个东西能不能做?不是逗号分割的,看不出看不出来吗。就那个拼接要用拼接吧,因为我要把它变成一个字段啊,把它变成一个字段,好,那这个东西我们先写一下。然后怎么写,这个是第一个字段吧,我们先你看先我们第一次得到的结果应该是这个样子,来看一下,我们把它复制一份啊,第一次结果你就不要想着一次性直接得到结果吧。
13:04
应该是他。把它,然后把这个干什么。复制一份,应该复制到这吧。CTRLC啊,然后对齐了,好到这,然后同样的把它复制一份吧。说我们第一次应该得到这样的结果,对吧?啊,然后再考虑聚合的一个问题吧,啊聚合的问题好这一块来谁来了,怎么写。看看用看看就行了吧,需要用为什么没必要啊啊第一个射手座逗号A对吧,好星座是不是拿过来逗号逗号对吧?啊第三个参数是这个学习学行好逗号这个东西呢,取一个别名叫什么东西啊。叫。下划线。OK吧啊,字段不要怕长,不要不要用你们的那个写代码的命名abcd写到最后自己都不想看,因为代码长了之后,Abcd你知道是什么对吧?啊就是命名,你会发现源码里面命名也很长嘛,啊尽量做到建面之意,简密之意,OK,那不用不用管它长义不是你处理对吧。
14:14
然后第二个name给他保留了。好,那给他保留,那直接可以from。是吧?这个啊。信息这个东西我们跑一下吧,一下啊。有一个什么。哦对,没没见表是吧,我说咋回事。电表我只是考到这里面来了,并没有执行是不是?拷进来,然后呢,VI一个什么。啊,应该是叫这个名字to点啊。然后这个数据集我们还得拿一下吧,呃,这个数据我得从这拿一下,从这拿比较保险一点,因为这个在word里边,很有可能这个格式就变了,Word其实也挺恶心的,我们把它放在这,这是TSD对吧,放在这。
15:09
最后一个空,好,先干掉。没问题吧,啊,CTRLC给过来啊。粘贴进来,保存退出。啊好,然后呢,是漏的数据,我也就不敲了,这个呢把S开掉。就行,把它下载过来啊。加载数据,然后我们查一下,先来给他析啊,不要有什么问题。然后是这个post in,诶这个还排行呢。在这。没问题吧,啊不等一共,然后呢,我们把第一次写的这个so课给他拿过来。将来运行一下。得到我们要的那个结果吧,啊,这个没有问题,那对于这个基础上我们在做什么事,这个表我把它叫做T表可以吧?啊,因为现在我们select新什么东西的时候,接下来要from什么。
16:00
T1了吧,哎,放T1了,从T1的基础上来做这个事,那接下来我们要解决的是这个。这个内容有什么特点啊,就是从他到他。就是按照这个进行分组,对吧,分组完了之后。用什么东西?首先用connect set把它变成一个数组,然后中间不有分隔符吗?再嵌套一层comp位是不是?想一下现在你看啊,你直接用康能拼接成功吗。不行,Con是不是拼接同一行里面的东西,现在你这个是在一个列里边吧。把一个列的数据拼接到一块儿,是不是应该用聚合函数啊?我们要用什么?Connect,对吧,也就是说这个地方我们来写一下第一个字段是不是保持不变,这没问题吧。
17:00
的话,第二个字段。C catca。位好,它是不是用中杠分割的,那我们按照需求按照中杠分割,那第二个参数含一个数组进来,也就是我们要的connect connect_set括号传什么东西。是不是name,哎,传name进来啊,传他进来这个就够了吧,就够了,然后from第一少了什么东西。注意contact with connect这个东西我说了,有一个是。还记得吗?哪个是聚合函数?可能是聚合函数,那就有问题了,你这边原数据你这边是聚函数,能直接这样放吗?是不是应该少了一个什么,后面要写一个group by。
18:01
谁了,第一个字段吧,第一个。啊,会把这个好,那两个怎么拼接,前面加个括号,把这个一干什么,不要复制分号了吧?啊分号把它进来啊,分号复制进来就变成两个了,把他干什么。执行一下啊,做一个签到,做个签到啊,你把题一每一步呢写好了之后,再把那个子产集的表前面打个括号,然后把前面的东西给它复制进来就行啊,假如说你对这个结果还要做处理,那同样道理,我把它变成什么,其二我在这写select什么东西写写完了之后from。From t2对吧?啊from t2 T完了之后,写完了之后再干什么事,把这个分号一写,写完了之后再前面打个括号,把这个T2整体干什么把它。一复制吧,啊,这样就一层一层的嵌套啊,公司当中写词会也是这样的,不可能说你说嵌套了十几层,你从外面从头写,谁能写明白。
19:01
脑子里面装不下那么多逻辑吧,对吧?啊,所以呢,只能一层一层的写啊,一层写的这个就是两层啊还好一点,就这个意思,好,最后我们要的结果是这个内容吧,对吧?啊,那海哥跟凤姐就在一块了吧,啊,海哥跟凤姐就在块了,松送比较孤单是吧?比较孤单啊,你们可以给送了找一个是吗?添加一个数据给送找一个。找一个猪八戒。
我来说两句