Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将此SAS数据步骤转换为条件计数器列的oracle sql?_Sql_Plsql_Sas - Fatal编程技术网

如何将此SAS数据步骤转换为条件计数器列的oracle sql?

如何将此SAS数据步骤转换为条件计数器列的oracle sql?,sql,plsql,sas,Sql,Plsql,Sas,我为这个问题的一般性道歉。我试图创建一个列,根据当前观察和上一次观察之间的时间将行分组在一起。下面的代码是我编写的在SAS中正常工作的代码。但是,由于数据步骤的运行方式与oracle sql的运行方式不同,我不知道如何在oracle sql中实现这一点。任何帮助都将不胜感激 DATA GROUP; SET LAG1; BY CUSTOMER_KEY; IF (TIME_BTW>5 OR TIME_BTW=.) THEN JOURNEY=0; JOURNEY+1; IF FIRST.CUS

我为这个问题的一般性道歉。我试图创建一个列,根据当前观察和上一次观察之间的时间将行分组在一起。下面的代码是我编写的在SAS中正常工作的代码。但是,由于数据步骤的运行方式与oracle sql的运行方式不同,我不知道如何在oracle sql中实现这一点。任何帮助都将不胜感激

DATA GROUP;
SET LAG1;
BY CUSTOMER_KEY;

IF (TIME_BTW>5 OR TIME_BTW=.) THEN JOURNEY=0;
JOURNEY+1;
IF FIRST.CUSTOMER_KEY THEN GROUP=0;
IF JOURNEY=1 THEN GROUP+1;
RUN;

看起来你是在根据时间定义组。你似乎想要一个分析函数。我认为代码是这样的:

select t.*,
       sum(case when time_btw > 5 then 1 else 0 end) over (partition by customer_key order by ??) as grp
from t;

请注意,与SAS不同,SQL中的表表示无序集。这意味着您需要一个列来指定顺序。

编辑您的问题,并提供示例数据和所需结果。对不起,我在过去20分钟内一直在尝试以可读的方式格式化示例数据,但我无法找到有意义的解决方案。我快到了!对于团体来说,这很好。唯一的问题是,如果有多个OB的时间_btw>5,那么它们也共享相同的grp编号。我将开始尝试对其进行修改,看看会发生什么。