我有一个从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)。 有人可以为此目的帮助我吗?
如果图片未显示,请在此处粘贴数据集:
#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;
}
答案 0 :(得分:0)
听起来好像您想计算op = 'PRE2'
到任意给定行的行数。您可以使用分析功能:
select t.*,
sum(case when op = 'PRE2' THEN 1 else 0 end) over (order by datetime) as rank_
from t;