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.

  1. 3 Respuestas en “Trucos sas. Autonumérico con PROC SQL”

  2. 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…

  3. 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

  4. 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.

Publica un Comentario