Я пытаюсь написать простой код для подсчета количества услуг, предоставляемых каждый год для различных поставщиков, на основе одного исходного столбца. В идеале мой вывод будет упрощенно выглядеть примерно так:
Входные данные будут выглядеть примерно так:
Prov_ID Name Service_Cd Date
A Joe B2 02JUN2012
A Joe C9 04OCT2013
A Joe B2 12JUL2014
B Steve A1 12MAR2012
B Steve E4 20OCT2013
C Tom B10 23SEP2012
... ... ... ...
... ... ... ...
И так далее, с целью иметь уникальный идентификатор поставщика, общее количество оказанных услуг, а затем итоговые суммы за 2012, 2013, 2014 годы.
ProvID Name Service_Count 2012_Count 2013_Count 2014_Count
A Joe 12 4 6 2
B Steve 15 5 5 5
C Tom 22 10 8 4
Приглушенная текущая версия кода, которую я написал для этой конкретной задачи, включает:
proc sql;
CREATE TABLE provider_detail as
SELECT distinct(PROV_ID), COUNT(distinct Service_CD)AS Service_Count, COUNT (date between '01JAN2012'd AND '31DEC2012'd)AS 2012_Count,COUNT (date between '01JAN2013'd AND '31DEC2013'd)AS 2013_Count,COUNT (date between '01JAN2014'd AND '31DEC2014'd)AS 2014_Count
FROM primary1
Group BY PROV_ID;
run;
Но при этом я получаю одинаковое количество в каждом столбце. Любая помощь будет принята с благодарностью, поскольку я новичок в SAS и, так сказать, все еще изучаю веревки. Благодарю вас!
count()
наsum()
(кроме первого), и он будет работать (также пусть имена выходных переменных начинаются с буквы или подчеркивания и заменяютrun;
наquit;
) - person DaBigNikoladze   schedule 07.05.2015