今天有數據分析問我,如何動態統計過去30的數?比如0601,計算0502——0601的用戶數去重,0602,計算0503——0602內的用戶數去重,是個動態的30天用戶數
他用的spark line。具體的語法的不熟悉,但是邏輯類似,利用循環控制傳入的值即可
這裏利用oracle的存儲過程實現
create or replace procedure test2 is
v_date date;
begin
v_date := trunc(sysdate - 365);
while v_date<=sysdate loop
insert into t4 select count(distinct id),v_date from t3 where day_date>=trunc(v_date-30) and day_date<=v_date;
commit;
v_date := v_date+1;
end loop;
end;
這樣即可實現,每一天統計從當天到當天往前30天的數據。