2017-02-16 2 views
0

Существует этот кодСоздание таблицы с помощью конкатенации SAS (SQL)

data &OUT_DATA.; 
set &IN_DATA_ORIGINAL_RISK_SCEN. 
work.RISK_SCENARIOS_FROM_CF_TO_LOAD(drop=REPORTING_DT 
HORIZON_TIME_PERIOD_CNT); 
run 

И то, что я понимаю, что он создает таблицу OUT_DATA путем конкатенации DATA_ORIGINAL_RISK_SCEN с RISK_SCENARIOS_FROM_CF_TO_LOAD. Но переменные этих двух таблиц одинаковы, поэтому я не понимаю, что он делает, и значения, которые притворяются в таблице OUTPUT, являются значениями RISK_SCENARIOS_FROM_CF_TO_LOAD.

Не могли бы вы мне помочь? Благодарю.

+0

Конкатенация - это MERGE. SET добавляется. Подробные сведения и примеры см. В Документах. http://support.sas.com/documentation/cdl/en/basess/68381/HTML/default/viewer.htm#p19t3r1gxavpoin14jdd23gcheve.htm – Reeza

ответ

1

Два набора данных в операторе set присоединяют строки вместе, поэтому, если у вас есть 1000 строк на первом и 400 на втором, вы получите 1400 строк на конечном выходе. Если они имеют одинаковые переменные, то в финале есть набор переменных; если есть другие переменные, то все переменные, которые находятся на , либо dataset появляются в финале, и заполняются пропущенными для строк, поступающих из набора данных, у которого нет этой переменной.

Например:

data class; 
    set sashelp.class 
     sashelp.class(where=(sex='M')); 
run; 

Это добавляет мужчин в полном наборе данных класса, поэтому они там дважды в конечной продукции; 29 рядов (19 из основного набора данных и еще 10 мужчин), то же 5 переменных.

data class_cars; 
    set sashelp.class 
     sashelp.cars 
    ; 
run; 

Этот набор данных не имеет никакого смысла, но показывает, что происходит, когда у вас есть два набора данных с разными переменными.

Если вы видите только строки из одного набора данных, то либо у вас есть критерии, по которым вы удаляете строки на основе, либо у вас нет строк в одном из входных наборов данных.

Смежные вопросы