Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

KUROL3

Rand() Proporcional

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites
quanto eu faço um by rand() sempre favoreço mais o que tem 4000 registros

 

Não entendi.O rand é aleatório e independe do registro em questão !!

 

teria como fazer um rand proporcional?

 

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.