相关疑难解决方法(0)

使用带有Teradata的Proc sql在SAS中编写高效查询

编辑:这是一套更完整的代码,可以根据下面的答案准确显示正在进行的操作.

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.然后,我将这些成员的活动汇总到所有类别.

上述方法远比以下方法慢:

  1. 运行第一个查询以获取子集
  2. 运行第二个查询会对每个ID求和
  3. 运行内部连接两个结果集的第三个查询.

如果我理解正确,确保我的所有代码都完全通过而不是交叉加载可能更有效.


在昨天发布一个问题之后,一位成员建议我可以通过提出一个更具体针对我的情况的单独的绩效问题而受益.

我正在使用SAS Enterprise …

sql sas teradata

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

sas ×1

sql ×1

teradata ×1