Trucos sas. Autonumérico con PROC SQL
Noviembre 6th, 2009 | por rvaquerizo |Rápido. Me ha llegado una consulta que me preguntaba como crear un campo autonumérico con PROC SQL. Tenemos que emplear la funciòn monotonic():
data uno;
do i=1 to 100;
output; end;
run;
proc sql;
create table uno as select
monotonic() as obs,
a.*
from uno a
where mod(i,2)=0;
quit;
Equivale al _n_ de un paso data. Es una tontería pero a un lector del blog le ha venido bien. Saludos.

3 Respuestas en “Trucos sas. Autonumérico con PROC SQL”
Por ffernandez, Nov 6, 2009 | Responder
Curiosas esas funciones de sas “undocumented”. Buscando un poco más sobre monotonic() he encontrado algo que puede ser interesante para los que están acostumbrados a analizar el “execution plan” para optimizar consultas. Si añadimos _method _tree tras el proc sql obtenemos información sobre el método utilizado por sas para realizar una determinada consulta y un “bonito” gráfico con el plan de ejecución. Os dejo un link con esta y otras “undocumented”:
http://www2.sas.com/proceedings/sugi29/040-29.pdf
A mí personalmente todavía se me escapa un poco este tipo de análisis para optimizar queries, si alguien se anima a escribir algo…
Por raicoh, Dic 28, 2011 | Responder
Existe alguna posibilidad de crear un campo autonumérico que se autoincremente al insertar informaación de SAS (como existe en Sql server y Mysql)? si no se puede hacer esto en SAS base como podríamos implementarlo???
graciassss
Por rvaquerizo, Dic 28, 2011 | Responder
Si tiene que ser con SQL mira esto:
http://listserv.uga.edu/cgi-bin/wa?A2=ind0808a&L=sas-l&D=0&P=19860
Pero si trabajas con SAS es muy sencillo con pasos data y la variable interna _n_:
data uno;
do id=1 to 100;
output;
end;
run;
data dos;
do id=1000 to 2000 by 2;
output;
end;
run;
data uno;
set uno dos;
autonumerico = _n_;
run;
Esa variable te hace un autonumérico.