Sas: как использовать except в proc sql


Вы можете использовать оператор EXCEPT в инструкции SQL PROC в SAS, чтобы возвращать только строки в одном наборе данных, которых нет в другом наборе данных.

В следующем примере показано, как использовать оператор EXCEPT на практике.

Пример: использование EXCEPT в PROC SQL в SAS

Предположим, у нас есть следующий набор данных в SAS, содержащий информацию о различных баскетболистах:

 /*create first dataset*/
data data1;
    input team $points;
    datalines ;
AT 12
At 14
At 15
At 18
At 20
At 22
;
run ;

/*view first dataset*/
proc print data =data1;

Предположим, у нас есть еще один набор данных в SAS, который также содержит информацию о различных баскетболистах:

 /*create second dataset*/
data data2;
    input team $points;
    datalines ;
AT 12
At 14
B23
B25
B29
B 30
;
run ;

/*view second dataset*/
proc print data =data2; 

Мы можем использовать оператор EXCEPT в инструкции SQL PROC , чтобы возвращать только те строки из первого набора данных, которых нет во втором наборе данных.

 /*only return rows from first dataset that are not in second dataset*/
proc sql ;
   title 'data1 EXCEPT data2';
   select * from data1
   except
   select * from data2;
quit ; 

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

Мы также можем использовать оператор EXCEPT для возврата только строк из второго набора данных, которых нет в первом наборе данных:

 /*only return rows from second dataset that are not in first dataset*/
proc sql ;
   title 'data2 EXCEPT data1';
   select * from data2
   except
   select * from data1;
quit ; 

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

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:

SAS: как использовать UNION в PROC SQL
SAS: Как использовать Proc Univariate по группам
SAS: Как использовать контент Proc

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *