Avatar billede naked2000 Nybegynder
30. oktober 2002 - 12:43 Der er 4 kommentarer og
1 løsning

Tilfældig udvælgelse

Jeg har en database med mange tusinde records i. Det jeg gerne ville, er at kunne udtrække ex. 500, via SQL, tilfældige records ud fra nogle givne kriterier

pseudo:
SELECT * random(500)
FROM tabel
WHERE age = 12

Findes der SQL command, eller skal jeg programmere mig ud af det?

MVH Peter M
Avatar billede pnielsen Nybegynder
30. oktober 2002 - 13:05 #1
Mig bekendt findes der ikke en sådan function. Desuden skulle pseudo koden vel se sådan ud:

select * from table where age=random(500);
Avatar billede teepee Nybegynder
30. oktober 2002 - 13:41 #2
select *
from tabel
sample(10)

tager 10% af rækkerne ud

select *
from tabel
sample(500/(select count(*) from tabel))

må jo så tage x% ud i forhold til størrelsen af tabellen

Prøv at lege lidt med denne og skyd den af nogle gange for at se om du får forskelige resultater. PS: Du må kun arbejde på 1 tabel når du bruger SAMPLE. Jeg ved ikke om du samtidig må bruge WHERE-clauses. Prøv det....
Avatar billede naked2000 Nybegynder
30. oktober 2002 - 13:41 #3
Det kan godt være jeg har formuleret det forkert, men det jeg mente er at den skulle vælge 500 tilfældige records ud blandt alle dem som havde age = 12
Avatar billede teepee Nybegynder
30. oktober 2002 - 13:42 #4
Hov, du skal vist lige gange med 100 et sted for at på procent
Avatar billede pnielsen Nybegynder
30. oktober 2002 - 13:57 #5
Kanon ! Den kendte jeg ikke :-)

Kiggede lige i manualen(det ser ud til at være en 8i+ feature):
It should be noted that any query involving SAMPLE will ignore any indexes on the table.

1. Sample table scans are restrictied to the Cost Based Optimizer only.

2. Sample table scans can only be performed on local tables.

3. This form of access is limited to single table queries - joins cannot use the SAMPLE syntax and return a parse error.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester