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.
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…
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
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.
Alguien podría ayudarme con una suma de un rango, quisiera saber las ventas de 10 días consecutivos. Es decir conocer las ventas del día 1 al día 10 y del día 2 al día 11 sucesivamente.