Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Olá pessoal estou com um pequeno problema e eu gostaria de saber se alguem já passou por algo assim. Tenho uma tabela de Movimentos com campos IdVenda, IdCliente, DataVenda e ValorVenda eu precisava montar uma espécie de Bucket contando o numero de vezes que o cliente comprou. O range seria assim:
Nr. de Clientes que compraram 1x
2 a 5x
6 a 9x
10 a 12x
13x ou mais
e uma outra range seria clientes que compraram no últimos 30 dias
31 a 60 dias
61 a 90 dias
91 a 120 dias
121 a 180 dias
181 a 360 dias
Na verdade é uma especie de analise RFV (Recencia, Frequencia e Valor do cliente)
Boa tarde, classifica do seguinte modo (DataHoje-DataVenda, resultado gera a classificação),.
Aqui ele não Classificou certo, tipo o IdCliente 12, tem uma quantidade de 147 dias, não se enquadraria no range 121 a 180 dias?
R: Isso é problema do formato eu add um num# que corrige esse problema.
Segue script atualizado:
dados:
LOAD
IdCliente&'-'&IdVenda as KeyClienteVenda,
num#(Interval#(Today()-DataVenda)) as DiasVenda,
if(num#(Interval#(Today()-DataVenda)) >=31 and num#(Interval#(Today()-DataVenda)) <= 60, '31 a 60',
if(num#(Interval#(Today()-DataVenda)) >=61 and num#(Interval#(Today()-DataVenda)) <= 90, '61 a 90',
if(num#(Interval#(Today()-DataVenda)) >= 91 and num#(Interval#(Today()-DataVenda)) <= 120, '91 a 120',
if(num#(Interval#(Today()-DataVenda)) >= 121 and num#(Interval#(Today()-DataVenda)) <= 180, '121 a 180',
if(num#(Interval#(Today()-DataVenda)) >= 181 and num#(Interval#(Today()-DataVenda)) <= 360, '181 a 360','NA')
)
)
)
) as ClassificacaoDias,
* INLINE [
IdVenda, IdCliente, DataVenda, ValorVenda
1, 12, 01/01/2018, 10
2, 12, 01/01/2019, 200
4, 15, 01/03/2019, 400
5, 14, 22/04/2019, 450
6, 21, 01/05/2019, 650
7, 21, 10/05/2019, 250
8, 23, 20/05/2019, 144
9, 12, 25/05/2019, 154
10, 12, 10/05/2019, 154
11, 14, 20/05/2019, 154
12, 15, 25/05/2019, 154
13, 14, 10/05/2019, 154
14, 21, 20/05/2019, 154
15, 21, 25/05/2019, 154
16, 23, 10/05/2019, 154
17, 12, 20/05/2019, 154
18, 12, 25/05/2019, 154
19, 14, 10/05/2019, 154
20, 15, 20/11/2018, 154
21, 14, 25/05/2019, 154
22, 21, 10/05/2019, 154
23, 21, 20/05/2019, 154
24, 23, 25/05/2019, 154
25, 21, 10/05/2019, 154
26, 66, 20/05/2019, 154
27, 77, 25/05/2019, 155
28, 99, 10/05/2019, 156
29, 99, 20/05/2019, 157
30, 65, 25/05/2019, 158
31, 89, 10/05/2019, 159
32, 90, 01/02/2019, 54
];
NumeroClienteCompraram:
LOAD
if(Count(IdVenda)=1,'1x',
if(Count(IdVenda) >1 and Count(IdVenda) <=5,'2 a 5x',
if(Count(IdVenda) >5 and Count(IdVenda) <=9,'6 a 9x',
if(Count(IdVenda) >9 and Count(IdVenda) <=12,'10 a 12x',
if(Count(IdVenda) >12,'13x ou mais')
)
)
)
) as NumeroClientesVendas,
IdCliente
Resident dados Group by IdCliente;
Danilo tudo bem?
Por gentileza tira uma dúvida minha.
A ClassificaçãoDias é pela quantidade de dias que o cliente não compra? Esta contando os dias e pelo resultado do campo DiasVenda ele enquadra no Range do campo ClassificacaoDias?
Aqui ele não Classificou certo, tipo o IdCliente 12, tem uma quantidade de 147 dias, não se enquadraria no range 121 a 180 dias?
Boa tarde, classifica do seguinte modo (DataHoje-DataVenda, resultado gera a classificação),.
Aqui ele não Classificou certo, tipo o IdCliente 12, tem uma quantidade de 147 dias, não se enquadraria no range 121 a 180 dias?
R: Isso é problema do formato eu add um num# que corrige esse problema.
Segue script atualizado:
dados:
LOAD
IdCliente&'-'&IdVenda as KeyClienteVenda,
num#(Interval#(Today()-DataVenda)) as DiasVenda,
if(num#(Interval#(Today()-DataVenda)) >=31 and num#(Interval#(Today()-DataVenda)) <= 60, '31 a 60',
if(num#(Interval#(Today()-DataVenda)) >=61 and num#(Interval#(Today()-DataVenda)) <= 90, '61 a 90',
if(num#(Interval#(Today()-DataVenda)) >= 91 and num#(Interval#(Today()-DataVenda)) <= 120, '91 a 120',
if(num#(Interval#(Today()-DataVenda)) >= 121 and num#(Interval#(Today()-DataVenda)) <= 180, '121 a 180',
if(num#(Interval#(Today()-DataVenda)) >= 181 and num#(Interval#(Today()-DataVenda)) <= 360, '181 a 360','NA')
)
)
)
) as ClassificacaoDias,
* INLINE [
IdVenda, IdCliente, DataVenda, ValorVenda
1, 12, 01/01/2018, 10
2, 12, 01/01/2019, 200
4, 15, 01/03/2019, 400
5, 14, 22/04/2019, 450
6, 21, 01/05/2019, 650
7, 21, 10/05/2019, 250
8, 23, 20/05/2019, 144
9, 12, 25/05/2019, 154
10, 12, 10/05/2019, 154
11, 14, 20/05/2019, 154
12, 15, 25/05/2019, 154
13, 14, 10/05/2019, 154
14, 21, 20/05/2019, 154
15, 21, 25/05/2019, 154
16, 23, 10/05/2019, 154
17, 12, 20/05/2019, 154
18, 12, 25/05/2019, 154
19, 14, 10/05/2019, 154
20, 15, 20/11/2018, 154
21, 14, 25/05/2019, 154
22, 21, 10/05/2019, 154
23, 21, 20/05/2019, 154
24, 23, 25/05/2019, 154
25, 21, 10/05/2019, 154
26, 66, 20/05/2019, 154
27, 77, 25/05/2019, 155
28, 99, 10/05/2019, 156
29, 99, 20/05/2019, 157
30, 65, 25/05/2019, 158
31, 89, 10/05/2019, 159
32, 90, 01/02/2019, 54
];
NumeroClienteCompraram:
LOAD
if(Count(IdVenda)=1,'1x',
if(Count(IdVenda) >1 and Count(IdVenda) <=5,'2 a 5x',
if(Count(IdVenda) >5 and Count(IdVenda) <=9,'6 a 9x',
if(Count(IdVenda) >9 and Count(IdVenda) <=12,'10 a 12x',
if(Count(IdVenda) >12,'13x ou mais')
)
)
)
) as NumeroClientesVendas,
IdCliente
Resident dados Group by IdCliente;
Danilo agora funcionou meu amigo! Muito obrigado!
dependendo, daria para usar o class()
Danilo Boa tarde tudo bem? Estou com uma questão aqui parecida com essa, porém eu tenho uma fato pedidos e uma dimensao cliente, que contem no qvd dele um campo 'Data_Ultima_Compra', fiz desta mesma forma que vc mostrou ai, porém nao deu certo, você poderia me ajudar?