我正在尝试为 dellstore2 数据库累积计算用户数。在这里查看答案和其他论坛,我使用了这个
select
date_trunc('month',orderdate),
sum(count(distinct(customerid)))
over (order by date_trunc('month',orderdate))
from orders group by date_trunc('month',orderdate)
这返回
2004-01-01 00:00:00.0 979
2004-02-01 00:00:00.0 1,952
2004-03-01 00:00:00.0 2,922
2004-04-01 00:00:00.0 3,898
2004-05-01 00:00:00.0 4,873
2004-06-01 00:00:00.0 5,846
2004-07-01 00:00:00.0 6,827
2004-08-01 00:00:00.0 7,799
2004-09-01 00:00:00.0 8,765
2004-10-01 00:00:00.0 9,745
2004-11-01 00:00:00.0 10,710
2004-12-01 00:00:00.0 11,681
每个月都是
979
973
970
976
975
973
981
972
966
980
965
971
看着前几项,似乎总体上还不错。但是当我跑
select count(distinct(customerid)) from orders
对于整个事情,我得到
8996
这与第一个输出 11,681 中的最后一项不一致。我想上面的计算不能确定几个月的唯一性。这种计算的最快方法是什么,最好不使用自连接?