あなたのコードは、内側COUNT(*)のラベルを結果を与えるが、それされますそれらに変数名を与えていません。
SAS PROC SQLでは、SELECTを実行しているとき、またはSELECT *を行っているときにも変数名を指定しないコードを記述できます。
select count(*) "Total number of rows" from sashelp.class ;
select * from
(select count(*) "Label 1" from sashelp.class
union all
select count(*) "Label 2" from sashelp.class
)
;
これらを使用してデータセットを作成することもできます。この場合、SASは変数名を生成します。
create table test1 as
(select count(*) "Total number of rows" from sashelp.class)
;
describe table test1 ;
をしかし、あなたはSUM()
のような式で変数を使用する場合、あなたは変数に名前だけでなく、ラベルを与えることがあります。これを試してみてください。それ以外の場合は、集計関数呼び出しの中に何を入れるべきか分かりません。一般的には、派生した変数名を与えることをお勧めします。
select sum(counts) as total_count label="Total of count(*)" from
(select count(*) as counts from sashelp.class
union all
select count(*) as counts from sashelp.class
)
;
あなたのPROC SQL
ステートメントにDQUOTE=ANSI
オプションを追加してみてください。これにより、文字列ではなく変数名として"name"
が処理されます。しかし、まだ名前の前にAS
キーワードを追加する必要があります。
proc sql dquote=ansi;
select sum(counts)
from (
select count(*) as "counts" from sashelp.class
union
select count(*) as "counts" from sashelp.class
)
;
quit;
出典
2017-03-07 22:40:58
Tom
私はそれらが2つの異なるエラーだと思いますか? –