Oracle
 sql >> Baza danych >  >> RDS >> Oracle

próbka warstwowa na zakresach

Oznacza to, że potrzebujesz co najmniej jednego rekordu z każdej grupy i więcej losowych rekordów, a następnie wypróbuj to:

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;

Tutaj, Rownum jest pobierany losowo dla każdej grupy, a następnie wynikiem jest rownum 1 i inne rownum jeśli spełniają losowy warunek.

Pozdrawiam!!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORACLE SQL wybierz odrębne, nie usuwając duplikatów

  2. jak połączyć się z bazą danych Oracle z systemu Unix?

  3. Funkcja NVL() w Oracle

  4. Zwracanie „tabeli” (bez wstępnego definiowania nazw kolumn) z funkcji PL/SQL

  5. Wywołanie procedury składowanej z java dla Oracle typu TABLE