select count(distinct `mail`) from ( select `mail`, `交易状态`, lead(`交易状态`,1,0) over(partiton by `mail`)as `下一次交易状态`,lead(`交易状态`,2,0) over(partition by `mail`)as `下下一次交易状态` from ( select `mail`, `交易状态`, row_number() over(partition by `mail` order by `交易时间`) from t ) where `交易状态` = '失败' and `下一次交易状态` = '失败' and `下下一次交易状态` = '失败' group by `mail` 先给表按消费者分人排序,再用lead函数给每个消费者当前的交易状态新增两列下一个交易以及下下个交易的状态,然后三个交易状态都为失败即符合要求,三次以上包含三次,所以没必要算,然后去重计数。

相关推荐

12-15 14:16
门头沟学院 Java
回家当保安:发offer的时候会背调学信网,最好不要这样。 “27届 ”和“28届以下 ”公司招聘的预期是不一样的。
实习简历求拷打
点赞 评论 收藏
分享
牛客36400893...:我不是这个专业的,但是简历确实没有吸引我的亮点,而且废话太多没耐心看
0offer是寒冬太冷还...
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务