求助!sql题

一个表, 字段:订单号,手机号,时间,金额

手机号对应多个订单号

需求:查阅所有手机号,订单号所对应的上一笔订单金额

这个咋整啊面试卡住了 #22届找工作求助阵地#
全部评论
很简单的,我这里理解为时间作为上一笔订单的标准,这里将表的数据做2次窗口函数计算,其中窗口函数是row_number()partition by是手机号,order是时间,将这2个窗口函数分别作为一张表,然后用join操作,然后手机号作为on条件,where条件是第一张表的窗口排序和第二张表的窗口排序相差1就是上一笔订单了,这样合成起来就能得到,其实不难
3 回复 分享
发布于 2023-02-15 22:52 北京
这个我能搞定
点赞 回复 分享
发布于 2023-02-15 22:03 北京
这个在银行、小额快付等场景是不常用的,但是电商、客服场景常见。 这里需要用到开窗,开窗是为了把相同的手机号放在一个组里,在组内,按照交易时间做正排,此时需要用到一个函数为lag,格式为lag(字段,向上偏移量,默认值),具体详解可以看这个知乎贴https://zhuanlan.zhihu.com/p/534883509?utm_id=0。 SQL:(代码和结果见截图,代码通过微信应该可以抠出文字;表字段为:mobile_phone(手机号)、trans_time(交易时间)、(trans_amt交易金额))
点赞 回复 分享
发布于 2023-12-25 14:43 上海
有趣的题目😁
点赞 回复 分享
发布于 01-24 23:06 上海
这题用lead()over()应该可以轻松解决吧。
点赞 回复 分享
发布于 03-19 16:46 北京

相关推荐

头像
11-05 09:57
已编辑
天津大学 Java
中兴 小ssp做c++ 薪资待遇得订到15级
点赞 评论 收藏
分享
ProMonkey2024:5个oc?厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖😋)
点赞 评论 收藏
分享
最讨厌装boyi的二🔥:服从性测试😉
点赞 评论 收藏
分享
15 4 评论
分享
牛客网
牛客企业服务