Sql 识别具有最大连续值的行

Sql 识别具有最大连续值的行,sql,sas,Sql,Sas,我在一个表中有两列。根据预定义的条件,第二列有1或0。有人能帮我确定1s的最大连续出现的逻辑吗。例如,在下表中,最大连续出现次数在第7行和第18行之间。只要用逻辑来确定这一点就足够了 谢谢创建间隔 data intervals ; set have ; by B NOTSORTED ; if first.b then start=A ; retain start ; if last.b then do; end = A ; duration = end

我在一个表中有两列。根据预定义的条件,第二列有1或0。有人能帮我确定1s的最大连续出现的逻辑吗。例如,在下表中,最大连续出现次数在第7行和第18行之间。只要用逻辑来确定这一点就足够了

谢谢

创建间隔

data intervals ;
  set have ;
  by B NOTSORTED ;
  if first.b then start=A ;
  retain start ;
  if last.b then do;
     end = A ;
     duration = end - start + 1 ;
     output;
  end;
  drop A ;
run;
然后找到最长持续时间的间隔。也许你想要第一次出现的最长持续时间

proc sort data=intervals out=want ;
  by descending duration start;
run;

data want ;
  set want (obs=1);
  where B=1;
run;
像这样的

data have;
input A B;
datalines;
1 0
2 0
3 1
4 1
5 1
6 0
7 0
8 0
9 1
10 0
11 1
12 1
13 1
14 1
15 1
16 1
17 0
18 0
19 0
20 1
21 0
;

proc sort data=have;
by A;
run;

data want;
set have;
if B=1 then count + 1;
if B = 0 then count = 0;
run;

proc sql;
select max(count) as max_value from want;

请以纯文本形式提供样本数据和预期结果。另外,您是在使用proc sql还是在连接数据库?如果连接到数据库,请选择哪个数据库(MySQL、SQL Server等)?