Приватные трансляции должны оставаться вокруг (даже если они получены), чтобы впоследствии их можно было получить. Возможно, вам стоит попробовать простой способ вещания, используя:
sendBroadcast(i);
Прочитайте этот .
Хммм. , , Это почти делает то, что вы хотите:
select distinct t.activity_name, t.status_change_dttm
from t1 t;
Однако, это вернет NULL
значения, даже если существуют не NULL
значения, например, для 1. Чтобы предотвратить это:
select distinct t.activity_name, t.status_change_dttm
from t1 t
where t.activity_name is not null or
not exists (select 1
from t1 t2
where t2.activity_name = t.activity_name and
t2.status_change_dttm is not null
);
Примечание. В этом случае select distinct
может не понадобиться.
Решение шага данных SAS может быть следующим:
/* set up data */
data have;
infile datalines truncover;
input activity_name : 8.
status_change_dttm : datetime20.
;
format status_change_dttm datetime20.;
datalines;
1
1
1 18FEB2019:19:16:13
2
3
3
3
4
5 03FEB2019:14:38:52
5 04FEB2019:18:30:52
5 14FEB2019:12:00:12
15
15 04FEB2019:18:30:52
15 14FEB2019:12:00:12
;
/* process and output */
data want;
null_count = 0;
group_count = 0;
/* count number of records and nulls for this activity_name group */
do until(last.activity_name);
set have;
by activity_name;
group_count + 1;
if missing(status_change_dttm) then
null_count + 1;
end;
/* output data for the same activity_name group */
do until(last.activity_name);
set have;
by activity_name;
if null_count = 0 then
output;
else
if null_count eq group_count then
do;
output;
/* prevent any more null records being output */
null_count + 1;
end;
else
if null_count lt group_count and not missing(status_change_dttm) then
output;
end;
run;