求助!sql题
全部评论
![](https://uploadfiles.nowcoder.com/files/20240329/120063338_1711681851542/light.png)
很简单的,我这里理解为时间作为上一笔订单的标准,这里将表的数据做2次窗口函数计算,其中窗口函数是row_number()partition by是手机号,order是时间,将这2个窗口函数分别作为一张表,然后用join操作,然后手机号作为on条件,where条件是第一张表的窗口排序和第二张表的窗口排序相差1就是上一笔订单了,这样合成起来就能得到,其实不难
![](https://uploadfiles.nowcoder.com/files/20240329/120063338_1711681851542/light.png)
这个我能搞定
这个在银行、小额快付等场景是不常用的,但是电商、客服场景常见。
这里需要用到开窗,开窗是为了把相同的手机号放在一个组里,在组内,按照交易时间做正排,此时需要用到一个函数为lag,格式为lag(字段,向上偏移量,默认值),具体详解可以看这个知乎贴https://zhuanlan.zhihu.com/p/534883509?utm_id=0。
SQL:(代码和结果见截图,代码通过微信应该可以抠出文字;表字段为:mobile_phone(手机号)、trans_time(交易时间)、(trans_amt交易金额))
有趣的题目😁
这题用lead()over()应该可以轻松解决吧。
相关推荐
02-12 17:55
北京联合大学 活动运营 ![](https://static.nowcoder.com/head/0photo.jpg)
点赞 评论 收藏
分享
01-14 14:12
天津理工大学中环信息学院 硬件开发 点赞 评论 收藏
分享
02-01 19:48
门头沟学院 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享