※ 引述《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寫得對不對,會怎麼弄?