2026-01
24

就是要用not exists

By xrspook @ 8:30:44 归类于: 烂日记

我知道有一个大表,我也有这个大表其中了一些数据的小表,我需要筛选出除了小表以外的数据,思路非常清晰,但实际上要用Excel里面的SQL实现却好像异常困难。在一些高级数据库里,有特殊的函数实现这个功能,有些用的是except,有些用的是minus,但是Excel里没有。如果可以用except或者是minus,这将意味着可以对大小表全列对比,但是如果用其他方法,只能选取其中一些。刚好我要操作的表有一列刚好是多个列信息的集合,所以用那一列作为标识刚好,但如果我根本没有那一列呢?难道我还得先造一列出来,然后再进行操作吗?无论是用not exists或者not in的方式去进行这种筛选,都只能选取其中的某一列操作。如果是用not in的方式,还得要注意,如果那个小表是空的时候,会导致筛选失效。如果用not exists的方式,则不需要考虑小表是空的情况。

一开始想实现这种功能,我想到的不是这两个,而是用count。先去计算那些有重复项的行,然后针对不同计数结果分别处理。就思路来说很清晰,但就实现来说,很啰嗦。但虽然啰嗦,还是能得出我想要的结果。第一天我用这种计数的方式得到了我想要的结果,但我依然觉得应该有一些更直接一点的方法,于是第2天我就想用not in或者not exists的方式去实现。

not in的方式总算是做到了,但是效率不高,感觉耗时是用计数方式的两倍。in和exists相比,我感觉exists的效率更高,但关键是实际上我使用的是not in和not exist,所以估计还是挺麻烦。虽然就语句来说,不过是多了一个not而已。exists的实现耗费了我不少时间,理论上我的写法没有任何问题,但关键是就会报错。折腾了一个下午都无果。晚上洗澡的时候,我突然想到可能是引用数据简写那里出了状况。在使用not exists子查询的时候。我依然是用经典的a和b简写,但实际上在这个子查询引用的数据里面就曾经出现过a和b。如果某一句查询里面的简写a和b是同一个层次的,没什么问题,但关键是子查询这种操作有递归的感觉,主查询跟子查询不是一个层次。VBA弹出来的报错窗口说某个简写可能指向多个数据。后来我觉得大概是因为之前我就已经有用过a这种简写,层层嵌套之下,exists的子查询不知道我指的到底是哪一层的a。洗完澡以后,我赶紧找文件测试,把主查询的a改为了之前从来没用过的c。果然,not exists子查询通过了!多次测试对比发现not in跟not exists的性能确有区别,not exists会快一点点,但是跟计数相比,好像计数依然是三者之中最快的。从好理解的角度而言,not exists最为复杂,最好理解的我觉得是计数,但是就语句使用的长短而言,not exists和not in最简单的。最后我采用的是not exists的方案,但是not in跟之前计数的方案我都只是把它们注释掉了,没有删除。

如果Excel里面的SQL能与时俱进,我能用一些那些高端的函数,我根本不需要这么大费周折。别人有现成的模块,连个线就能用,但我什么都没有,所以哪怕是一个螺丝,我都得从零开始手搓。

2025-02
28

小时候的作文真难

By xrspook @ 9:14:15 归类于: 烂日记

还记得小学低年级的时候,作文这个作业是回家之后再做的,我一直很困扰。无论那个作文是在哪一天布置的。做这个作业,肯定意味着我妈要干涉我。低年级的时候我妈给我买了好些作文书。平时我一一点都不会碰。那些书有什么状人的状物的,还有一些查找的手册。我已经彻底不记得那些书我丢哪里了,是怎么处理掉的。到底是丢掉了还是给别人了?上面说到的那几款都是我妈买给我的,还有一些是其他亲戚送我的,是一些作文选。

我家其实有很多书,但小的时候的我并不知道。翻来覆去看的都是那几本。小朋友都喜欢看漫画书,看到有字的书就会觉得头痛,尤其是整本书都是字,那就更让人头痛了。都是字的书,对低年级的我来说,也就只有学校的课本,但对低年级的学生而言,课本实际也有不少的图片。所以实际上我总很难把注意力都集中在文字上,理解文字的意思。那些小学低年级的时候就喜欢看全本都是字的书的同学,我简直无法理解他们是什么构造。

每次要在家里完成作文这个作业,我的作文都不得不有很多个版本,我先写出来的那个版本,总会被我妈改得面目全非,然后第2版第3版,几乎这也这么说,后面那些版本都是根据我妈的意志来的。简而言之,那不能算是我的作文,只能算是我妈的作文。首先整体思路都是我妈的,其次里面的文字以及这文字的表达,估计一半以上也是她的。中年级以后,老师要求作文要写完才能回家,这个我觉得实在太好了。起码我再也不会受到我妈的束缚,一次性就把那个东西写出来,交完作业了事。写得好与不好都是我自己的问题,你可以事后批斗我,但是你把我的思路改得乱七八糟,我能难受。第1版过后那些版本的作文,我简直不知道该怎么办了。但话说回来,小学低年级的时候,老给出一个题目,我总不知道该怎么写。现在回想起来,归根到底就是我接触到的东西太少了。我看那些全部都是文字的书太少了,所以我不知道该怎么写。我还没搞清别人是怎么写的,我怎么知道自己该怎么写呢?虽然实际上低年级的作文基本上都是模仿,只不过是比造句多一点点而已。但说起组词造句,我也是觉得很困难,问题还是出在那个点上,我的摄入太少了。小时候我喜欢看动画片,也喜欢看连续剧,唯一不怎么喜欢看的是粤剧,因为好像老是听不明白他们在唱什么。咿咿呀呀拖得很长,其次是那些句子,一个个字不知道是啥,串起来更加不知道是啥。如果没记错的话,周二的晚上,珠江台会播粤剧,播一个晚上,每到那个时候,我都会觉得非常折磨,但幸好后来有了有线电视,有了香港电视台,无论是本港台还是翡翠台,晚上的黄金时段肯定是电视剧。那时的我挑的不是电视剧,挑的是电视台,反正一直都看翡翠台就对了。

现在的小孩是怎么养成阅读习惯的呢?对我来说,大概是在四年级的时候,才终于不再恐惧那些全部都是文字的书。帮我打破这个心理障碍的是金庸的武侠小说。对一个小学生而言,这有点不可思议,对女生而言,这同样不可思议。不再害怕看书以后,我的输出变得越来越随心所欲。问题只是,这个输出也得看场合,在不同的环境下,得输出合理的东西。

2021-09
9

口述blog

By xrspook @ 10:11:43 归类于: 烂日记

我会觉得如果别人能对着摄像头不停地在那里说很厉害,但实际上每天我都拿着语记搞blog已经好多年了,唯一的不同之处在于我只对着手机讲话。我不需要在乎自己的表情、肢体语言,又或者其它东西。如果我对的不只是手机的麦克风而是麦克风加摄像头的话我就要在乎其它。纯粹对着麦克风,或者加一个镜头是没什么本质区别的。还有一个区别就是因为我用的不是付费版本的语记,所以我只能一段话接一段话录入,我不能一直说下去。如果我录制的是一个视频,我就不需要这样干,但如果没有停顿的话,我能连续不断地说吗?我不需要来些暂停来进行某些东西的构思吗?一开始的时候我的确需要说一段停一段造句,但慢慢地我已经养成了习惯,没有那个必要,只要在开始之前我想好话题,我就可以一直说下去。我不知道自己每天要说多少分钟,但是如果要完成1000字的话,估计5-10分钟是必须的。如果我不用说这个方式进行输入,而用敲键盘的方式,这将消耗我更多的时间。因为已经习惯了说,所以你要我纯粹敲键盘,有时候我会大脑短路,不知道某些句子应该怎么写。

之所以可以如此快捷地完成口述blog这个操作,得归功于科大讯飞的语言识别引擎。在科大讯飞还没有这么强大之前,我已经在用语记了,而在语记之前还是之后我也试过用讯飞的输入法,但发现那个的方便程度不如直接用语记,毕竟在用其他APP的时候,我觉得那个输入法真的很逆天,非常不适应。以前的语记是有离线识别功能的,虽然效果挺糟糕。讯飞输入法当时也是有离线功能,这两个东西虽然都在用讯飞的引擎,我不知道离线词典到底有什么差异,反正语记的效果会好一点。

现在,我也不知道是因为我的普通话准了,还是科大讯飞的AI经过这么长时间的训练已经非常牛逼,所以即便我用正常语速去说,识别率依然非常高。以前不知道是信号不好,还是他们的引擎还不够强大,每句话我都得放慢速度说,于是说着说着我都不知道自己下一句要说什么了。以前最让我头痛的是我说的时候语记在转圈圈,是说完一段以后,语记继续转了好久的圈圈,接着告诉我识别失败,于是那一段话就这么没了。要我重新回忆起刚刚说了些什么,而且要比较类似地重新再说出来,好为难我。有些时候情况特被糟糕,我甚至要把一段相同的话说上个3、4遍,简直让人崩溃。遇到那种情况的时候,我会直接关掉APP,老老实实地回到电脑前敲键盘。每天都要写blog,每天都要对着语记说,之前我会当天的日志当天完成,但现在我已经习惯前一天晚上完成第2天的那篇blog。这样的话,我就不会因为第2天有什么突发的事件而没有时间做。第2天我需要做的是把语记已经记录下来的东西复制到电脑上,然后进行进一步的校对,毕竟有些词语还是不准确,尤其是当我中文英文和其它外语混用的时候,又或者当我在说一些比较专业的词语的时候,语记会识别不出来。

现在的人喜欢用多媒体,比如说照片,vlog之类的去记录他们的生活,但这么多年下来,我觉得最原始、最长久、最稳妥的还是用纯粹的文字,毕竟文字体积小,到处放都无所谓。还有就是字里行间能表达出一些我觉得其它多媒体没办法表达出来的东西。多媒体你肯定得编辑,有些人是不后期处理前绝对不发图的,你得用滤镜或者特效之类,但实际上那些都不是我想要的,我只想表达纯粹的自己。

已经做了17年的文字blog,我依然觉得这很有意思,我会一直做下去。哪怕可能一开始的时候我是写在纸上,接着用键盘敲到电脑里,然后是我直接用键盘敲日记,再到现在我通过口述记录日志,然后通过键盘去编辑。方法多种多样,但目的从未改变——用文字记录真实的我。

2020-10
16

PQ上的纠结

By xrspook @ 23:59:46 归类于: 烂日记

晚上洗澡的时候我一直在想着某个Power Query的问题。某个功能我曾经试过用别的步骤去实现,但是到了最后一步的时候,发现某个东西算不出来,所以我就放弃了那个方法,文件也被我删掉了。晚上,当我遇到一个新问题的时候,我觉得用下午的那种方法才最容易实现。晚上洗澡的时候,我突然意识到,实际上下午的时候我几乎成功了,只剩下最后一步。当时我没想到,其实可以用一个以退为进。我可以做一个判断,如果if的判断等于空,就计算,如果不等于空,就是继续保留某数据。我并不知道如何修改PQ里某一列的数据,于是我的实现方法是新增一列对旧的那一列判断,然后把旧的那个删掉,新的那个重命名。这样就解决了下午我最后我没解决的问题。虽然这样做有点笨。高手一定不会这样做的,高手一定会有一些暂时我还无法参透的各种套叠解决问题。

要实现某个功能,最终我用了31行,更之前我用某个其它方法做出来的那个一样多,但后来的方法显然更容易理解。因为整个代码都是我手写出来的,命名也更加人性化。当然其实我也可以对系统自动生成的名字做修改,达到类似的颜值,但是某些自定义函数光靠系统的可视化窗口无法做到。经过这一番折腾以后,我更进一步地明白到之前我已经模仿做到的模糊查询到底做了什么操作。和之前我模仿回来的模糊查询比起来,这一次我实现的功能要麻烦一点。一开始的操作二者挺相似,模糊查询做完第1步以后,基本上就只剩下删除列和排序了,而我做的那个在完成的那一步以后,只不过是刚入门。我也不知道这一次摸索我到底是怎么折腾出来的,那显然,如果没有看见星光的M语言课程,我会继续迷糊。也正是因为第4节里说到了上下文,说到了新增列判断条件以及上下文的使用,才可以让我顺利流畅地通过第1步,也正是因为经过这一次练习,我觉得我已经略微掌握了上下文那个东西。

软件这种东西,光是看教程、听课,而不于实际操作,是没有用的,因为那个东西不会入脑。要形成条件反射,要让那些技能成为自己的东西,只有通过思考和练习。高手和低手的区别,我觉得大概在于高手的思考时间远远不需要那么长,所以他们可以有更多时间练习,而我这种低手,要在思考那里花好些时间,后来的练习当然比不上人家。基础的了练习尚且不够,就更不用说读懂练习中的异同。这种东西,在我高中的时候特别明显。高手在刷题的时候,我还在理解,至于为什么高手可以理解得那么快,至今,我都想不明白。大概这个东西不是想就能明白的。

经历过纠结以后,我觉得自己的脑洞又大了不少,在遇到问题的时候,我奇怪的思路又增加了一些。就是这些旁门左道的扩展,让我在处理正统问题上,貌似又更进了一步。

2020-10
15

自学有道

By xrspook @ 8:37:47 归类于: 烂日记

每天都在论坛解决别人的问题。一定程度上,我是在磨练自己,当自己的工作好像没什么新思路的时候,就需要一些刺激。有些非常弱智的问题,我会懒得去回答,但很高深的问题,又不是我能解决得了的。所以这其中也挺纠结,到底什么类型的问题才最适合让我去练手呢?我自己有问题,尤其是案例类的东西、跟数据直接相关的东西,我就没想过要放在论坛里问高手。通常我都是四处寻找答案,再不行,我就截图问身边的人,但无论如何,我都不会把数据发上去,尤其是工作类的。如果只是我个人的blog,所谓,反正都写了这么多年,根本没有秘密。但其他东西。不能这么随意公开,而我也没有真的遇到一个我自己解决不了的问题。有些时候,我想实现某些功能,但经过一番操作之后发现,即便能做到也很麻烦,所以我就直接绕过去了,因为不一定非得那样做。这条路不通,我就走别的路,直接放弃这条路。这也是我的快乐之处。在别的单位,可能领导会要求你必须得这么干,就要这样的格式,就要这样的数据。不管你用什么方式,但实际上那样的格式、那种模式数据实际上是很逆天的。我运气好,暂时还没遇到这种事。当然我也遇到过类似差不多的事情,比如应该写0的地方他们要写杠。把格式设定为逆天,实在让人觉得非常无语,但幸好我的领导是一些挺懒的人,某些格式一旦定下来就不怎么改,而且因为他们懒,所以定下来的固定格式也不多。

蹲在论坛解决别人问题的时候,我发现自己是一个很没有耐心的人。当别人提出某个要求,我又实现了以后,我觉得就大功告成。但之后那些人居然会在之前的基础上,不断加新要求进去。如果你有很多要求,为什么不一开始就说清楚呢?哪怕可能你根本没想到有人真的能做到你想象中的那样,如果做不到的话,别人会直接告诉你这个思路是错误的。绕了好大一个圈,解决了问题,但事后说这个问题只是开胃菜,还有后续那些。一次两次加料之后,我会觉得那人好烦,这完全是他自己的东西,为什么不一开始就摊出来说呢?遮遮掩掩到最后还是要慢慢的托出,简直在浪费大家的时间。当东西整出来以后,我发现有些时候他们一开始那个思路是错的,一开始因为无法全盘考虑,我就被他们默认带错路了,绕了好多个死胡同。他们自己的数据,他们最清楚其中的来龙去脉。但显然当他们把数据拿出来求助的时候可以看出,其实他们完全是蒙圈的。这些操作对我来说最大的好处是那些教程上面的东西经过一次又一次使用后,我开始有点行云流水了,虽然有些时候还是会很迷糊,但现在总算是有点头绪。之前我觉得,同样是列名,有时用中括号,有时用双引号,莫名其妙,但现在我几乎搞得清是一个什么状况。虽然在使用函数和引用数据的时候我还得不停琢磨。

你们不安排我培训,我就自寻培训的途径。

© 2004 - 2026 我的天 | Theme by xrspook | Power by WordPress