Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
Leobdl
Contributor
Contributor

Clientes x Recompras

Olá pessoal,

 

Estou com uma demanda para relacionar os clientes que fizeram mais do que 1 compra.

Após relacionar os clientes com recompra, preciso calcular:

- Tempo entre uma compra e outra

- Tempo médio entre as recompras

- Valor acumulado

 

Estou meio perdido com essa demanda e não sei por onde e como começar. Alguma sugestão?

1 Solution

Accepted Solutions
marigf1
Contributor II
Contributor II

Boa noite @Leobdl.

Não conheço tua estrutura mas acredito que o caminho seja por aqui:

Compras:

Load

clientes,

dataCompra,

If( Previous(clienteID) = clienteID, 'Recompra', 'Primeira Compra') as 'flagReCompra',

If( Previous(clienteID) = clienteID, Interval(dataCompra- Previous(dataCompra), time(0)) as 'intervaloCompra',

outros campos

From sua base Order By clienteID, dataCompra asc;

 

Acho que você pode tirar algo bom daí.

 

View solution in original post

3 Replies
marigf1
Contributor II
Contributor II

Boa noite @Leobdl.

Não conheço tua estrutura mas acredito que o caminho seja por aqui:

Compras:

Load

clientes,

dataCompra,

If( Previous(clienteID) = clienteID, 'Recompra', 'Primeira Compra') as 'flagReCompra',

If( Previous(clienteID) = clienteID, Interval(dataCompra- Previous(dataCompra), time(0)) as 'intervaloCompra',

outros campos

From sua base Order By clienteID, dataCompra asc;

 

Acho que você pode tirar algo bom daí.

 

Leobdl
Contributor
Contributor
Author

Olá @marigf1 ,

 

Dessa forma que você direcionou, consegui nomear a segunda e demais compras como 'Recompra'.

A segunda fórmula apresentou esse erro, porém não consegui identificar onde para corrigir

Leobdl_0-1632857285164.png

 

Alguma sugestão?

marigf1
Contributor II
Contributor II

Olá @Leobdl 

Coloque um ) depois de time(0) para fechar a função interval.