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...