作者Wengboyu ( )
看板Statistics
标题[程式] 从另一个dataset运算後回传结果
时间Tue Oct 13 11:43:58 2020
[软体程式类别]:
SAS
[程式问题]:
资料处理
[软体熟悉度]:
新手
[问题叙述]:
我有table a和b
table a
date SID doctor
2019/1/1 a jack
2019/1/2 a jack
2019/1/3 a jack
2019/2/1 b ben
2019/2/2 b ben
2019/2/3 b ben
...
2019/2/15 b mark
2019/2/16 b mark
2019/2/17 b mark
table b
date SID doctor
2018/1/1 a jack
2018/1/2 b jack
2018/1/3 c jack
2018/1/15 a jack
2018/1/31 a ben
2018/3/1 b ben
2018/3/1 c mark
2018/4/16 d mark
2018/4/21 c mark
我要得到下面的结果
table c
date SID doctor doctor_service_volume
2019/1/1 a jack 3
2019/1/2 a jack 3
2019/1/3 a jack 2
2019/2/1 b ben 1
2019/2/2 b ben 1
2019/2/3 b ben 1
...
2019/2/15 b mark 2
2019/2/16 b mark 2
2019/2/17 b mark 2
我要计算table a每一笔,a.doctor在a.date过去一年内收过多少病人(不重复)
table b是处方签资料
例如:
first row in table a
date SID doctor
2019/1/1 a jack
我就要从table b中去找docor jack在a.date和(a.date - 1 year)间
收了多少不重复的病人
table b doctor jack 在2018/1/1 ~ 2019/1/1开过处方签的病人
date SID doctor
2018/1/1 a jack
2018/1/2 b jack
2018/1/3 c jack
2018/1/15 a jack (重复)
所以a.doctor_service_volume = 3
[程式范例]:
这个问题我有在Database版发问过,但由於SQL还是跟SAS sql有些差异
因此在这边想寻求大家的帮助
我後来是根据chippclass版友提供的MariaDB code来改写,但没有成功
改写的code如下
###
Proc sql;
create table want as
select *, count(*) as doctor_service_volume from
(select distinct a.*, b.SID from a left join b
on a.DoctorID = b.DoctorID &&
a.date >= b.date &&
b.date >= intnx('year', a.date, -1, 'same')
)
group by
date, SID, DoctorID;
quit;
###
会得到下面的结果
table c
date SID doctor doctor_service_volume
2019/1/1 a jack 3
2019/1/1 a jack 3
2019/1/1 a jack 3
2019/1/2 a jack 3
2019/1/2 a jack 3
2019/1/2 a jack 3
2019/1/3 a jack 2
2019/1/3 a jack 2
2019/2/1 b ben 1
2019/2/2 b ben 1
2019/2/3 b ben 1
...
2019/2/15 b mark 2
2019/2/15 b mark 2
2019/2/16 b mark 2
2019/2/16 b mark 2
2019/2/17 b mark 2
2019/2/17 b mark 2
也就是他算到多少次doctor_service_volume,就会重复多少次
doctor_service_volume是算对了,但资料变超级大
就算在选取时,再加上distinct也是一样的结果
不知道版友有没有其他的写法,或者我在哪边的code有问题
感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 120.126.32.197 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Statistics/M.1602560642.A.2A3.html
※ 编辑: Wengboyu (120.126.32.197 台湾), 10/13/2020 11:45:05