Página 1 de 1

Query com Pesquisa Randomica é possivel ??

Enviado: Seg, 06 Mar 2006 8:57 pm
por jctq
Gente preciso fazer uma query randômica, que tragam registros existentes na tabela mas de forma aleatoria, tem alguém ai que já fez isso .Se alguém soube e puder me ajudar eu agradeço muito.

Valeu mesmo ...

JCTQ :idea:

Enviado: Seg, 06 Mar 2006 11:55 pm
por dr_gori

Query com Pesquisa Randomica é possivel ??

Enviado: Ter, 07 Mar 2006 10:16 am
por jctq
Valeu Gori !!!

Mas o que eu queria mesmo, é fazer uma query de uma tabela que tenho 1000 registros e selecionar somente 150 aleátoriamente, tenho como fazer isso ??

Muito Obrigado,

Enviado: Ter, 07 Mar 2006 10:22 am
por dr_gori
Sim, coloca na sua pesquisa um

Selecionar tudo

WHERE ROWNUM<=150
Exemplo:

Selecionar tudo

SQL> SELECT *
  2  FROM 
  3    (SELECT *
  4     FROM EMP
  5     ORDER BY DBMS_UTILITY.GET_HASH_VALUE(TO_CHAR(dbms_utility.get_time)||ename,2,1048576)
  6    )
  7  WHERE ROWNUM <=3
  8  /

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7876 ADAMS      CLERK           7788 23-MAY-87       1100                    20
      7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30
      7839 KING       PRESIDENT            17-NOV-81       5000                    10

SQL> /

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7566 JONES      MANAGER         7839 02-APR-81       2975                    20
      7788 SCOTT      ANALYST         7566 19-APR-87       3000                    20
      7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30

SQL> /

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7900 JAMES      CLERK           7698 03-DEC-81        950                    30
      7934 MILLER     CLERK           7782 23-JAN-82       1300                    10
      7566 JONES      MANAGER         7839 02-APR-81       2975                    20

SQL> /

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7788 SCOTT      ANALYST         7566 19-APR-87       3000                    20
      7566 JONES      MANAGER         7839 02-APR-81       2975                    20
      7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0         30

SQL> 
feito! :shock:

Enviado: Ter, 07 Mar 2006 10:39 am
por jctq
Ai Gori, valeu mesmo cara....
Esse portal é muito bom ....

Abraços...
:lol:

Como gerar resultados aleatórios de clientes

Enviado: Qua, 16 Set 2009 9:20 pm
por mariogus
Preciso gerar randomicamente de uma tabela de clientes que tem 1 milhão de registros e quero somente gerar o número de 50.000 clientes..Como posso fazer isso? Tenho dúvidas de como usar o DBMS_UTILITY.GET_HASH_VALUE para fazer essa consulta..Alguém pode me ajudar?

Enviado: Qui, 17 Set 2009 3:36 pm
por RodrigoValentim
Thomas postou um exemplo, da uma estudada nele e você consegue a solução fácil!

DBMS_UTILITY.GET_HASH_VALUE - Cláusula

Enviado: Sex, 18 Set 2009 12:12 pm
por mariogus
Pessoal - segue abaixo o SQL:

Mas o que acontece é que ele se perde na cláusula where interna e traz os outros dados...também.. O que pode estar sendo feito de errado?

(dbms_utility.get_time)||dimcli_id,3,429604886) - tenho dúvida sobre esses últimos parâmetros grifados em negrito.

SQL:

Selecionar tudo

SELECT * 
FROM 
(
SELECT * 
FROM dim_cliente_suat d
where d.tipo_conta = 'D'
and d.perfil_cobranca_conta = 'PAG'
and d.brand = 'terra'
and d.dt_cadastro_conta < sysdate - 90 
and (d.status_conta = 'CA' and d.dt_status_conta between sysdate -240 and sysdate -90) 
or (d.status_conta = 'AT')
ORDER BY DBMS_UTILITY.GET_HASH_VALUE(TO_CHAR(dbms_utility.get_time)||dimcli_id,3,429604886) 
) 
WHERE ROWNUM <=50000

Enviado: Sex, 18 Set 2009 1:56 pm
por victorhugomuniz
GET_HASH_VALUE Function

This function computes a hash value for the given string.
Syntax

Selecionar tudo

DBMS_UTILITY.GET_HASH_VALUE (
   name      VARCHAR2, 
   base      NUMBER, 
   hash_size NUMBER)
  RETURN NUMBER;
Parameters
Table 104-20 GET_HASH_VALUE Function Parameters

Parameter Description
name - String to be hashed.
base - Base value for the returned hash value to start at.
hash_size - Desired size of the hash table.

Enviado: Qua, 07 Out 2009 11:31 am
por esttevan
Eu usei o Dbms_Randon.Value no Order By

Selecionar tudo

Select * From (
Select
	*
From	
emp
Order By Dbms_Random.Value) a
Where
Rownum < 3
Estevan.