KUROL3 3 Denunciar post Postado Agosto 27, 2011 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
Motta 645 Denunciar post Postado Agosto 27, 2011 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
KUROL3 3 Denunciar post Postado Agosto 28, 2011 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
Motta 645 Denunciar post Postado Agosto 28, 2011 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