Estoy tratando de calcular el número de usuarios, acumulativamente para la base de datos dellstore2. En cuanto a respuestas aquí y en otros foros, he utilizado estetotales mensuales acumulativos y Postgresql
select
date_trunc('month',orderdate),
sum(count(distinct(customerid)))
over (order by date_trunc('month',orderdate))
from orders group by date_trunc('month',orderdate)
Esto devuelve
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
Cada mes es
979
973
970
976
975
973
981
972
966
980
965
971
Parece ser total fina, mirando a los primeros pocos artículos. Pero cuando me encontré
select count(distinct(customerid)) from orders
para toda la cosa, me sale
8996
que no está de acuerdo con el último elemento de la primera salida de 11.681. Supongo que el cálculo anterior no puede determinar la singularidad a lo largo de los meses. ¿Cuál es la forma más rápida de realizar este cálculo, preferiblemente sin utilizar autouniones?
¿Algunos clientes compraron cosas más de una vez? En diferentes meses? –
@ NikolaMarkovinović tiene razón al respecto, usted debe hacer ese comentario una respuesta ... –
@pOcHa Od svih gradova, moj omiljeni Niš .... :-) –