sql >> Database >  >> RDS >> Oracle

gestratificeerde steekproef op bereiken

Het betekent dat je van elke groep minimaal één record nodig hebt en meer willekeurige records. Probeer dan dit:

SELECT GROUP, VALUE FROM
(SELECT T2.GROUP, T2.VALUE, 
ROW_NUMBER() 
OVER (PARTITION BY T2.GROUP ORDER BY NULL) AS RN
FROM TABLE_1 T1
JOIN TABLE_2 T2
ON(T1.RANGE = T2.GROUP))
WHERE RN = 1 OR
CASE WHEN RN > 1 
AND RN = CEIL(DBMS_RANDOM.VALUE(1,RN))
THEN 1 END = 1
FETCH FIRST 10000 ROWS ONLY;

Hier, Rownum wordt voor elke groep willekeurig genomen en het resultaat is rownum 1 en andere rownum als ze aan een willekeurige voorwaarde voldoen.

Proost!!



  1. Kan de id van de laatst ingevoegde rij in Hibernate niet ophalen met Oracle

  2. Cakephp 2.0 mysql-query

  3. Syntaxisfout bij het invoegen van meerdere rijen in SQL?

  4. Welke gebruikersnaam en wachtwoord moeten worden ingevoerd om verbinding te maken met SQL*Plus na installatie van Oracle 11g?