Ir para conteúdo

POWERED BY:

Arquivado

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

RafaelN

Como sortear dados de forma consistente

Recommended Posts

Bom dia.

 

Tenho uma base de clientes e preciso separar um grupo de teste (quem receberá mala direta) e grupo controle (quem nao receberá), isso para que possamos fazer uma analise.

 

A dúvida é a seguinte, ao separar os dois grupos, estou utilizando para o grupo teste, um select de 95% com ordem de newid(), e o restante fica como controle.

 

Mas o problema é que os dados ficam inconsistentes, as duas bases precisam estar parecidas.

 

Por ex:

Suponha que na minha base 50% é de Paulistas e outros 50% é de Cariocas.

Eu faço um select com newid(), e acaba sorteando paulistas e mais 45% de cariocas para base teste, totalizando 95%, e a base controle ficaria com o restante de cariocas, 5%.

O que preciso é que ele pegasse neste caso, 47,5% de paulistas e + 47,5% de cariocas para base teste, e 2,5% de paulistas e + 2,5% de cariocas para base controle.

 

Gostaria de saber de vocês, alguma forma de que no select, ou alguma configuração na base de dados, faça com que distribua de forma igual os dados para os grupos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta usar o UNION

SELECT TOP 5 NEWID(), COUNTRY, * from NORTHWIND..CUSTOMERS WHERE COUNTRY = 'USA'
UNION
SELECT TOP 5 NEWID(), COUNTRY, * from NORTHWIND..CUSTOMERS WHERE COUNTRY = 'GERMANY'
ORDER BY NEWID()

obs.: coloquei top no exemplo, mas poderia ser o SET ROWCOUNT: http://msdn.microsoft.com/en-us/library/aa...89(SQL.80).aspx

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.