You reinitialize aggr_raw with the value of count(aggr_raw) => Numeric result. Try this: proc sql noprint; create table aggr_tmp_2 as select aggr_instrument_id, aggr, aggr_raw, count(aggr_raw) as count_aggr_raw, avg (diff) as diff from aggr_tmp_1 group by aggr_instrument_id, aggr; quit; Regarding aggr, make sure it exists. By default, SAS converts uninitialized variables in numerical vars. Edit: It does not make too much sense to keep aggr_raw in the query (depending on your needs). So you better exclude it.
... View more