Haha! Que legal, era isso mesmo. Muito obrigado pessoal =D
Jorge Vilela 2009/11/25 Osvaldo Kussama <[email protected]> > 2009/11/25 Jorge Vilela <[email protected]>: > > Vou tentar exemplificar com o joguinho. > > Quando o jogador bate a cabeça (Estilo mario) em um quadrado especial, > > existe a possibilidade de ganhar o cogumelo, a pena, o foguinho etc... > > Ao fazer um "select poder from poder_especial order by random() limit 1", > > todos os itens tem a mesma possibilidade de serem escolhidos, certo? > > > > E se eu tivesse, por exemplo, um campo que pudesse determinar a > > probabilidade? Por exemplo: Cogumelo tem 50% (0.5) de chances de > aparecer, > > Pena tem 30% (0.3), Foguinho tem 20% (0.2). Eu poderia utilizar esse > campo > > como base para o random()? > > Eu não quero forçar nenhum dos resultados, somente precisava "pender" > mais > > para um ou para outro... > > > > > Como disse na mensagem anterior a função random() é uniformemente > distribuida então verifique se o que necessita é algo do tipo: > > bdteste=# SELECT rnd, CASE WHEN rnd <= 0.5 THEN 'Cogumelo' WHEN rnd > > 0.5 AND rnd <= 0.8 THEN 'Pena' Else 'Foguinho' END FROM (SELECT > random() AS rnd) foo; > rnd | case > --------------------+---------- > 0.0976872597821057 | Cogumelo > (1 registro) > > isto é, cada vez que você executar este SELECT você terá 50% de > probabilidade do resultado ser "Cogumelo", 30% de ser "Pena" e 20% de > ser "Foguinho". > > Osvaldo > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
