Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá estou com um sisteminha que consegui os seguintes clientes
id_cliente - qtd_produtos por cliente
1 - 200
3 - 1000
3 - 1500
4 - 4000
quanto eu faço um by rand() sempre favoreço mais o que tem 4000 registros
teria como fazer um rand proporcional?
Exemplo (dividir todos pela menor parte e pegar uma de cada para o rand)
abraços
Marco
bom o que quero é um rand justo...
tipo
1 - 200
3 - 1000
3 - 1500
4 - 4000
pegar os 200 do primeiro pegar 200 do segundo pegar 200 do terceiro e pegar 200 do quarto ou seja vou ter 800 registro sendo 200 de cada cliente ai sim fazer um rand() somente no s 800
entendeu?
obrigado
Marco
Se você quer selecionar os clientes por igual, faça algo assim ...
Clientes distintos
select distinct idcliente
from vendas
Sorteando 1
select idcliente
from
(
select distinct idcliente
from vendas)
order by rand()
limit 1
Não importa a quantidade de cada cliente, se ele teve "venda" aparece com igual chance no sorteio.
Ajudou ?
Não entendi.O rand é aleatório e independe do registro em questão !!
algo como :
select id , qtd
from tabela
order by qtd * rand() desc
geraria um viés pelos registros de maior quantidade, mas aí foge da ideia do aleatório.