SAS: вставка данных, когда счетчик равен 0 для следующих строк

Мне нужно найти min_week, когда счетчик равен 0, и значение недели этой строки должно продолжаться до тех пор, пока счетчик снова не станет 0.

Ниже приведен пример вывода, который я ищу:

В моем текущем выводе со следующим кодом я получаю вывод как:

proc sql;
    create table week_min_1 as 
    select t1.*, t2.week as min_week from emp_table t1
    left join (select * from emp_table where counter = 0 group by emp having sequence = min(sequence)) t2
    on t1.emp= t2.emp
     ;
quit;

min_week одинаков для всех emp или он когда-либо меняется?

Reeza 20.01.2023 21:05

Будет ли случай, когда неделя увеличится?

Reeza 20.01.2023 21:06

min_week: нет, это не должно быть одинаковым, и оно должно меняться каждый раз, когда счетчик переходит от 0 к 1 и т. д., принимая данные за неделю как min_week. неделя: Нет, это все записи, которые мы ожидаем от emp. Спасибо за вашу помощь.

GSingh 23.01.2023 11:37
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
4
61
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Давайте сначала создадим ваши образцы данных:

data have;
    input Emp $ Sequence Week Counter;
    datalines;
a001 1 2 0
a001 2 4 1
a001 3 8 2
a001 4 12 3
a001 5 24 0
a001 6 36 1
a001 7 48 2
a001 8 52 3
;
run;

Теперь нам нужно отсортировать наши данные. В этом образце он уже отсортирован, но лучше перестраховаться, чем потом сожалеть.

proc sort data=have;
    by Emp Sequence;
run;

С помощью простого оператора if мы идентифицируем эти значения min_week.

data have2;
    set have;
    if counter = 0 then do;
        min_week = Week;
    end;
run;

И с оператором обновления мы помещаем эти значения в каждую строку.

data want;
    update have2 (obs=0) have2;
    by Emp;
    output;
run;

Другие вопросы по теме