※ 引述《Wengboyu ( )》之铭言:
这东西看起来就是准备最后的报表类 而且资料算是已经都不会再新增的
建议作法是
直接把a table的每一笔资料都取出来 丢进去算
最后塞到c结算table里面 用排程去慢慢跑
不要想着一次就全部捞出来而且每次都直接算新的
//====
刚刚想到更新的做法
从TABLE a取出最老的日期 然后把那个日期跟到今天的日期弄成另外一张table
table 字段大概就是
day is_done
20200101 1
20200102 0
.
.
.
202001005 0
然后开始 用那个日期去捞b
count(*) between year_of_day
and day GROUP BY docter_id
就好了
排程5~10秒做一次 一次处理一天
三个多小时可以做完一年的份量
: 数据库名称:SAS SQL
: b.prescriptiondate between a.prescriptionBeginDate and
: intnx('year', a.PrescriptionBeginDate, -1, 'same'))
: as service_volume
: from
: dataset a, dataset b;
: quit;
: 因为跑很久,我不太确定这样写是不是可以得到我要的结果..
: table a 有240万笔,b有1600万笔
: 如果大家要测试自己code写得对不对,会怎么弄?