Я следующий набор данных:SAS отчетливые в Proc SQL против прок рода nodupkey
data work.dataset;
input a b c;
datalines;
27 93 71
27 93 72
46 68 75
55 55 33
46 68 68
34 34 32
45 67 88
56 75 22
34 34 32
;
run;
Я хочу, чтобы выбрать все различные записи из первых 2-х колонок, так что я писал:
proc sql;
create table work.output1 as
select distinct t1.a,
t1.b
from work.dataset t1;
quit;
Но теперь я хотите знать, какое значение var c стоит в предыдущем наборе рядом с комбинацией (var a, var b), которая видна на выходе. Есть ли способ узнать? Я попытался выполнить сортировку proc, но я не знаю, работает ли она так же, как выбор отдельных записей в proc sql.
proc sort data = work.dataset out = work.output2 NODUPKEY;
by a b;
run;
Благодарим за помощь.
Я знал это, но вопрос в том, можно ли узнать, какой из них (c = 71 или c = 72) был сброшен. Я предполагаю, что SAS ведет запись, которая является «более высокой» в наборе данных (в этом примере укротителя 27 93 71 будет сохранена), но нужен кто-то, кто либо подтверждает, либо отрицает это. – user2280549
В sql выберите отдельный запрос, никакая запись не будет удалена, так как переменная c не является частью выбора. В примере proc sort nodupkey SAS сохраняет только первое наблюдение, с которым он сталкивается. –
Спасибо за ответы. Еще один, возможно ли сделать proc sql, взяв n столбцов и «отличая» его на основе только их подмножества? Другими словами, я бы добавил row_number к моим данным, выберите a, b и row_number, но отдельная функция будет помещена в первые два столбца. – user2280549