Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.3k views
in Technique[技术] by (71.8m points)

Oracle 如何判断 某个字段连续下降(根据时间判断)了三次 并且最后一次值小于60?

列如:
表结构:成绩表 t_score 含有有字段 student_id,score,time,is_countine_down

数据: 某个学生 在2020-01-01、2020-02-01、2020-03-01的成绩(score)分别为 80、65、55。此时将最后一次(2020-03-01)记录中的is_countine_down字段值改为 ‘yes’


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

把学生成绩查出来, 保存到一个list1里面, 然后把list1降序排列得到list2,比较两个list里面的东西顺序是否相等,如果相等,那么is_countine_down=yes,否则为no.
比如从数据库查出来的数据list1=[1,3,2],排序后得到list2=[3,2,1],那么list1和list2里面内容的顺序不相等,说明没有连续下降.

这里面有几个特殊情况,比如成绩不到3次,或者3次成绩都一样, 这个就看你的业务需求怎么处理了


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...