具体等级要求

时间:2018-07-09 08:39:44

标签: sql oracle

我有一个从oracle表查询的数据集,列TS表示测试序列,DATE TIME是测量时间的开始,OP表示测试操作,STATUS是操作的状态,RUN_TPYE表示事件的类型。 我想将OP ='PRE2'的日期时间定义为STATUS ='START',将其定义为loading_date, 样本中有6个loading_date,现在我想按OP,RUN_TYPE和TS对其进行排序,我希望将rank_(n-1)和rank_n之间的每个OP分配为rank_(n-1)。 有人可以为此目的帮助我吗?

enter image description here

如果图片未显示,请在此处粘贴数据集:

#include <stdio.h>
#include <limits.h>

int main() {
    printf("UCHAR_MAX = %u\n", UCHAR_MAX);
    printf("(unsigned char)-1 = %u\n", (unsigned char)-1);
    printf("-1 with %%hhu conversion: %hhu\n", -1);
    return 0;
}

1 个答案:

答案 0 :(得分:0)

听起来好像您想计算op = 'PRE2'到任意给定行的行数。您可以使用分析功能:

select t.*,
       sum(case when op = 'PRE2' THEN 1 else 0 end) over (order by datetime) as rank_
from t;