编辑:这是一套更完整的代码,可以根据下面的答案准确显示正在进行的操作.
libname output '/data/files/jeff'
%let DateStart = '01Jan2013'd;
%let DateEnd = '01Jun2013'd;
proc sql;
CREATE TABLE output.id AS (
SELECT DISTINCT id
FROM mydb.sale_volume AS sv
WHERE sv.category IN ('a', 'b', 'c') AND
sv.trans_date BETWEEN &DateStart AND &DateEnd
)
CREATE TABLE output.sums AS (
SELECT id, SUM(sales)
FROM mydb.sale_volue AS sv
INNER JOIN output.id AS ids
ON ids.id = sv.id
WHERE sv.trans_date BETWEEN &DateStart AND &DateEnd
GROUP BY id
)
run;
Run Code Online (Sandbox Code Playgroud)
目标是根据类别成员资格在表中查询某些id.然后,我将这些成员的活动汇总到所有类别.
上述方法远比以下方法慢:
如果我理解正确,确保我的所有代码都完全通过而不是交叉加载可能更有效.
在昨天发布一个问题之后,一位成员建议我可以通过提出一个更具体针对我的情况的单独的绩效问题而受益.
我正在使用SAS Enterprise …