业务需求
简单说 根据多种业务规则 查询出核心库 MCR表里的合同有效期时间,然后跟征信库RC表的查询时间匹配,排查是否存在 MCR表合同有效期<征信库RC表的查询时间的日常数据
数据说明:
场景1:直接传日期
合同有效期时间:直接取 credit_ret_msg字段的值
场景2:credit_ret_msg字段的值包含 【征信授权书】
合同有效期时间:取CRT_TM
场景3:credit_ret_msg字段的值包含 lastValidQueryTm
合同有效期时间:取lastValidQueryTm 后面的时间戳
这时候 全量的 credit_ret_msg字段的值如下:
那么我们需要实现什么呢?
将以上三种场景对应的 合同有效期时间都取出来并且+1年时间,根据cst_id 分组,取出最大的那个时间,与其他的表做关联更新,最后做个简单的>计算即可。
看到这里的同学,觉得简单的 不妨模拟下这个数据类型
credit_ret_msg 【 varchar2(4000)】 ,你会遇到以下两个大坑:
第一个坑:场景3的时间戳如何截取出来?
PS:论数据截取的艺术..
第二个坑:数据类型的处理 我们最终要的是日期类型,但是这三种场景最终的数据 分别是 日期 数值与 字符,那么如何获取我们想要的最终的值?
ps: 这就是基础的数据处理思维.
第三个坑:场景3的时间戳是 微秒级时间戳 没有现成的函数可以直接完成字段类型转换,需要写个函数处理,或者纯SQL计算也可。
PS: 是时候考验你的基本SQL功底了,哈哈
小坑就不赘述了 大佬基本几分钟搞定,让我们直接放答案:
涉及思路:
V1表包含 数据截取 前后分别截取两次
V2表计算汇总不同数据类型,分组取(期待有更好的答案)
V2最终汇总使用自定义函数计算时间戳字段
ORACLE给指定日期加1年
看似简单的SQL,三种场景的需求确认沟通都浪费了1天时间,实际完成也只花了2小时编写而已,论数据处理需求明确的重要性!
最终完美解决,后续问题数据排查需要深入业务排查代码设计逻辑,算是给研发同学开了个好头(知道BUG的研发眼泪流下来),嘿嘿。
附上小彩蛋:自定义函数 TIMESTAMP_TO_DATE
实现功能:时间戳转换为 年月日 时分秒日期字段:
函数创建语句:
最后修改时间:2022-03-01 17:17:14
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
👍
1年前

评论
SQL能力需要不断的进步学习
1年前

评论
您好,您的文章已入选合格奖,10墨值奖励已经到账请查收!
❤️我们还会实时派发您的流量收益。
3年前

评论
相关阅读
百观科技基于阿里云 EMR 的数据湖实践分享
阿里云大数据AI技术
80次阅读
2025-04-02 10:45:30
《深度剖析SQL游标:复杂数据处理场景下的智慧抉择》
程序员阿伟
33次阅读
2025-04-01 18:31:41
共享内存+图计算,渊亭科技再获一项高效数据处理专利授权
渊亭科技
33次阅读
2025-04-01 18:30:24
《突破数据困境:超大分区表的游标优化策略》
程序员阿伟
27次阅读
2025-04-02 16:25:49
高频数据处理技巧:非等间隔的时间序列处理
DolphinDB
22次阅读
2025-03-28 14:56:41
FAST'25论文解读:HaSiS单索引存储架构实现HTAP数据处理新范式
ScaleFlux锐钲
18次阅读
2025-04-18 16:07:28
ES 整合 Kafka-构建实时数据处理服务
新智锦绣
15次阅读
2025-03-27 10:00:36
数仓架构告别「补丁」时代!全新批流一体 Domino 架构终结“批流缝合”
YMatrix
14次阅读
2025-03-27 09:58:17
Redis Stream:重塑实时数据处理的轻量级消息引擎
老王两点中
11次阅读
2025-04-03 09:00:49
网易邮箱DolphinScheduler迁移实战:从部署到优化,10倍效率提升的内部经验
海豚调度
11次阅读
2025-03-28 15:02:14