Writing Efficient Queries in SAS Using Proc sql with Teradata

后端 未结 5 523
[愿得一人]
[愿得一人] 2021-02-06 11:58

EDIT: Here is a more complete set of code that shows exactly what\'s going on per the answer below.

libname output \'/data/files/jeff\'
%let DateStart = \'01Jan         


        
5条回答
  •  情话喂你
    2021-02-06 12:27

    One alternate solution is to use SAS procedures. I don't know what your actual SQL is doing, but if you're just doing frequencies (or something else that can be done in a PROC), you could do:

    proc sql;
    create view blah as select ... (your join);
    quit;
    
    proc freq data=blah;
    tables id/out=summary(rename=count=total keep=id count);
    run;
    

    Or any number of other options (PROC MEANS, PROC TABULATE, etc.). That may be faster than doing the sum in SQL (depending on some details, such as how your data is organized, what you're actually doing, and how much memory you have available). It has the added benefit that SAS might choose to do this in-database, if you create the view in the database, which might be faster. (In fact, if you just run the freq off the base table, it's possible that would be even faster, and then join the results to the smaller table).

提交回复
热议问题