自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 SQL执行顺序理解

1.先确认表(数据源头),如果有join,先根据连接条件,把多张表的记录(行)连接起来,形成一张大表。4.如果分组后还要过滤,用having再过滤一遍,最后会得到分组后的数据。5.执行顺序调到开头,根据字段列表和表达式,选择显示哪些内容。2.表连接好了之后根据where条件筛选掉不符合条件的行。3.然后根据group by的分组字段,对数据进行分组。6.确定了显示内容,根据order by进行排序。把自己想象成计算机,SQL需要怎么处理。

2024-07-08 21:01:27 108

原创 银行数据迁移遇到的数据问题

A系统的数据迁移到B系统时,B系统的检核人员按照B系统的规则检核数据,但是当时缺乏沟通,A系统按A系统的运行机制写SQL,B按B的检核,中间少了机制的转化,会出问题。4.运行机制不一样,揉一起比较乱,有些从0期开始,有些从第1期开始,当然系统迁移时需要统一转化为相同的规范,还好这个不痛不痒。5.数据不符合逻辑,比如贷款的起始期次应该小于到期期次。1.数据非空:同样的字段,有些系统可为空,有些不能,合并的时候数据没有补上,2.数据丢失:一般是无关痛痒的数据,造成有些表有数据,有些没有。

2024-06-30 21:32:47 199

原创 银行数据迁移Debug经验总结

2.先观察数据特点,横向比较(记录内的特点)纵向比较(记录之间相似之处)。然后分类,找出现比较频繁的,抽查为什么,打上补丁后再次执行,数据一般会比之前少,再做抽查。3.把相关字段的计算式提取出来,做成子查询,放到检核SQL的字段列表(select-list)里面去,看看是否数据匹配,不匹配可能是逻辑有问题,匹配大概率数据就那样。1.分析原SQL的逻辑是否大体正确,如果逻辑正确,可能是有细节没考虑到,或者是数据本来不合规。数据质量比较差,检核SQL一执行,动则几万条数据需要分析,让人感觉无从下手。

2024-06-30 21:22:56 88

原创 SQL常用的几个计算一

银行里面需要根据当前日期(字符串格式)计算上/下一个结息日,如果今天是2024/6/30,那么上一个结息日是2024/6/21,下一个结息日是2024/7/21,如果当天是21号,下一个结息日取当天。思路,判断当前是大于,还是小于21号,目标字段和当前日期年月相同的把年月截取了,再链接一个'21',不同的转化成日期类型,做加减,再转化为字符串,截取,拼接。算法一:直接分析第7位是不是0,用这个数减去这个数截取小数点后6位,如果大于10的负7次方则不为0,否则为0。同事需要把“X天X小时X分”转化成秒。

2024-06-30 21:14:25 352

原创 定时喝水提醒

用python写了一个小脚本,提醒广大电脑前久坐上班族每隔一段时间喝水,起来走走(上厕所)样式如下。西医说久坐容易导致心肌衰弱,引发高血压,冠状动脉硬化,ED....搞不好肺栓塞就GG了。弹窗(内容自定义):#可以使用提示音,见注释部分。几百块钱卖啥命啊,健康最重要~

2024-05-06 22:03:47 193

原创 SQL_使用decode合并SQL

更进一步的,如果有几个SQL,表连接的表还是那几张表,连接方式还是那样,但是连接条件不一样,我们是否能用decode函数合并呢.答案是可以的.我们可以使用decode来实现有选择的做表连接.再字段映射里面同样使用decode函数执行对应的字段表达式.这样就实现了多个SQL合并为一个SQL.看到同事最不加思索的写法就是where选择位数等于18位的然后截取,另外一个SQL是用where选择位数等于19位的,然后union all....写完后发现,居然还有17位的,哈哈哈。

2024-05-06 20:37:01 409

原创 SQL连续登录判断算法二

select * from t t1 where exists(select 1 from t t2 where t1.userid=t2.userid and t2.td

2024-04-07 21:48:58 262 1

原创 SQL连续登录判断算法一

select userid,count(td-rownum) from (select distinct USERID,trunc(LOGIN_DATE) td from login_info group by USERID,trunc(LOGIN_DATE) order by trunc(LOGIN_DATE)) group by userid,td-rownum having count(td-rownum)>=5 /*如果没有符合连续登录5天的数据,userid为空*/5.过滤分组统计的数据。

2024-04-05 09:20:31 220 1

原创 SQL拆分数据

举例来说,贷款核算表Test1里面一条记录有四个个金额,PRI_AMT,INT_AMT,ODP_AMT,ODI_AMT.新增一个字段,如果是ODP_AMT>0显示'ODP',如果是ODI_AMT>0显示'ODI'.如果两个都大于0,显示两条数据。当PRI_AMT=0的时候,新增字段为'INT',不等于零的时候拆分为两条数据,'PRI'和'ODI'.有条件引用笛卡尔积的数据.有时候会遇到同样的表连接,不同的连接条件,可以使用表拼接,也可以在表连接的时候使用复杂条件筛选数据.把两种情况分别算出来,表合并。

2024-03-03 13:43:47 193

原创 Python自制CV剪贴板

按下win键,开始菜单中找到一个非uwp软件的图标,点击打开文件位置就是。图标可以用greenfish生成。可以创建快捷方式(Windows),将快捷方式复制到开始菜单目录下即可在开始菜单中启动该程序。用Python随手写了一个CV剪贴板,提升常用语句的复制粘贴效率、#云桌面的win10不能调出剪贴板,对于CV工程师来说十分不方便。#原创文章,转载注明出处。1.创建存储数据的文件。

2024-02-17 21:35:48 640 4

原创 Impala踩到的一些坑

1.Impala不支持select-list(字段子查询,select到from中间)的子查询,需要转化成表连接。左连接原来子查询的表,表连接的条件使用子查询的筛选条件就好。4.DBeaver里面Oracle的SQL行尾可以直接加注释,Impala需要空格后加注释,貌似是impala中注释吃掉了换行符,导致解析错误。3.Impala类型检查比较严格,貌似不支持Oracle的隐式转换,字符串的数字和数字类型的数字有区别。解决方法:使用表拼接来代替。比如同样的表,子查询要28秒,表连接只要21秒,提升25%。

2024-02-17 20:47:04 291 1

原创 SQL连续登录等连续判断问题解题思路

特征1:一个连续队列(公差d1)和另外一个连续队列(公差d2)做差(向量运算),当d1=d2的时候,有差值为一个常量,然后统计常量的个数.算法1:去重之后的登录时间减去公差为1的队列(123456...),得到一系列时间(Oracle),统计相同的时间个数,看有没有大于n的.算法3:按照id排序过后,行偏移错位相减,统计一个固定间隔内(like算法2)相减结果(间距)个数是否为n-1。算法2:去重的数据,以当前时间为"计算节点",计算当前时间到其后n天有多少条数据。当然啦,穷举大法也挺不错的,[手动滑稽]

2024-01-09 22:17:31 486

原创 用全排列理解递归

二叉树的遍历顺序的不同,因为Action相对调用函数自身语句的位置不同,决定了是先读节点再往下层读取,还是先转到叶子,然后执行完后返回上层继续执行。c.remove(i)#如果用data代替C,返回执行别的分支的时候,向下一层传递的数组会丢失之前删除的数据,不符合逻辑。有一个数组M,里面有M(M

2023-09-25 17:06:18 37 1

原创 华为机考二星题

全排列应用在“组合”场景下会有重复的情况,所以策略改进为,有一个数组,取出N个数,第K次取数的索引大于第K-1次取数的索引。则可以避免重复的情况#论证:全排列中重复的情况按照数值大小排序必定能转化为该策略下的序列,该策略不会引起重复,所以能去重。递归第一层,有四个分支(四个数),递归第二层有三个分支(剩余三个数),递归第三层有两个分支,在最后一层输出最末一层的分支上经过了哪些路径并输出#详见递归求全排列。有N个旅行团,只有一辆大巴,核载人数M。#强化理解:集合中有4个元素,求全排列。

2023-09-25 16:30:58 43 1

原创 有趣的SQL笔试题

注:3学年制为2018~2019,2019~2020,2020~2021年在校.--汇总人数,计算范围:距离目前时间范围在学年制范围内,并且是之前的。算法:子查询,传递当前年份,统计之前至今有多少人入学。已知每年入学人数和学年制,从2018年开始招生。题目:请计算每年学校有多少人。--关联子查询类比于函数传参。创建表#注释字段含义。

2023-08-03 17:57:40 49

原创 度小满SQL笔试题

max_sum --算法一:向子句传入course_id,时间节点,计算最大值。某页面推出了数据分析系列直播课程介绍。用户可以选择报名任意一场或多场直播课。insert into endtime--吃饱了撑的把登出时间节点提出来。解法2:笛卡尔积,依旧是以登出节点为准--本质上都是for循环。解法1:向子查询传递参数,***以登出时间为计算节点***

2023-08-03 16:57:45 256

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除