oracle 統計每月累積購買人數

2021-08-24 22:43:23 字數 1620 閱讀 7636

oracle 可有什麼方法 統計每月累積購買人數

比如說有個門店 2023年購買商品的人數

表:t_buy_log 字段 f_username 使用者名稱;購買時間f_buytime

1 如果是統計每月購買人數

select to_char(f_buytime,'yyymm'),count(distinct f_username)

from t_buy_log

group by to_char(f_buytime,'yyymm')

order by to_char(f_buytime,'yyymm') asc

結果:

1月 100人

2月 150人

3月 50人

2 如果統計每月累積購買人數 ?

1月 100人

2月 是1月和2月的購買人數 客戶有重複 值在100-250之間

3月 是1-3月的購買人數

這個該怎麼寫呢?

用分析函式的sum 好像不行

1-1

select to_char(f_buytime,'yyymm'),count(distinct f_username)

from t_buy_log

where to_char(f_buytime,'yyymm')='200901'

1-2

select to_char(f_buytime,'yyymm'),count(distinct f_username)

from t_buy_log

where to_char(f_buytime,'yyymm') between '200901' and '200902'

1-3

select to_char(f_buytime,'yyymm'),count(distinct f_username)

from t_buy_log

where to_char(f_buytime,'yyymm') between '200901' and '200903'

create table t_tmp_test as

select oldtable.tm,

(select/*+parallel(t,20)*/ count(distinct f_username)

from t_base_prouser_suc t where to_char(f_expectenddate, 'yyyymm') <= oldtable.tm

and t.f_source in ( select f_buymodeid from t_base_flat_type where f_department = 1)

) rs

from

(select to_char(add_months(to_date('2007-01-01','yyyy-mm-dd'),(level-1)),'yyyymm') tm

from dual

connect by level < months_between(to_date('2009-12-01','yyyy-mm-dd'),to_date('2007-01-01','yyyy-mm-dd'))+1

) oldtable

Oracle學習累積

oracle學習累積 1.oracle的一些基本語句 a 實現可修改的查詢語句 select t.t.rowid from allentest t b 排序實現 按序輸出一區間段的值 select from select rownum,t.from allentest t order by id w...

SQL語句統計每天 每月 每年的 資料

1 每年 select year ordertime as 年 sum total 銷售合計 from order list group by year ordertime 2 每月 select year ordertime 年 month ordertime 月 sum total 銷售合計 f...

SQL語句統計每天 每月 每年的 資料

1 每年 select year ordertime as 年 sum total 銷售合計 from order list group byyear ordertime 2 每月 select year ordertime 年 month ordertime 月 sum total 銷售合計 fr...