Proc SQL промежуточный итог - PullRequest
       10

Proc SQL промежуточный итог

0 голосов
/ 04 января 2019

Я строю процесс в SAS EG и пришел в тупик, когда мне понадобилось промежуточное итоговое значение. Это было бы очень легко сделать в Excel, но моя таблица имеет длину 22M записей. У меня есть опыт VBA, но не Proc SQL. Может кто-нибудь показать мне, как сделать промежуточную сумму в долларах по пунктам? Данные отсортированы по Рынку / Сегменту / Позиции / Месяцу.

Спасибо Джефф

MyData

1 Ответ

0 голосов
/ 04 января 2019

Ваша иерархия - Рынок / Сегмент / Предмет, и, возможно, из вопроса можно предположить, что Предмет уникален для всех Рынков и Сегментов.

Промежуточный итог является самым простым на этапе DATA. Вы захотите использовать first. автоматические переменные, подготовленные, когда у шага есть оператор BY.

data want;
  set have;
  by Market Segment Item Month; * add month to make sure incoming data is ordered timewise, if not an error will appear in the log;

  if first.Item then RunningDollars = 0;
  RunningDollars + Dollars;  * The + syntax here is a `SUM` statement that causes the RunningDollars variable to be automatically retaine, meaning the value is available for the next record.
run;
...