Como fazer SQL randômico com o Firebird?

Delphi

23/11/2004

Preciso de fazer uma consulta que retorne randomicamente parte dos registros da tabela consultada.

Gostaria de saber se no firebird existe alguma função para isto. O ideal é que eu controle quantos registros serão selecionados randomicamente.
A aplicação está sendo feita em Delphi.

Obrigado pela atenção.


Dalmer

Dalmer

Curtidas 0

Respostas

Gandalf.nho

Gandalf.nho

23/11/2004

Existe a cláusula FIRST que retorna os primeiros n registros, mas randomicamente acho que não dá. Qual a finalidade disso?


GOSTEI 0
Dalmer

Dalmer

23/11/2004

A consulta que preciso fazer na base de dados é para encontrar perfil de consumidor, mas como a base pode ser muito grande a idéia é trabalhar parecido como o IBOPE nas pesquisas, pegando uma amostragem dos dados, 1/100 ou 1/1000 dos registros contidos na tabela e assim tendo uma resposta bem aproximada da real.


GOSTEI 0
Rômulo Barros

Rômulo Barros

23/11/2004

Utilizando o ClientDataSet, configure a propriedade PacketRecord para 1000. Assim, apenas serão retornados os 1000 primeiros registros da consulta.

;);)


GOSTEI 0
Gandalf.nho

Gandalf.nho

23/11/2004

Uma idéia seria gerar uma procedure em que fosse passado o nº de registros desejados e daí randomicamente geraria números até fechar a quantidade desejada. Cada nº gerado seria usado como critério na SQL de busca dos dados (use a chave primária). Se o registro não existe, gere outro e tente de novo até obter os registros desejados. Pode ser que até existem ferramentas para fazer isso, mas eu desconheço.


GOSTEI 0
POSTAR