Oracle
 sql >> база данни >  >> RDS >> Oracle

стратифицирана проба по диапазони

Това означава, че имате нужда от поне един запис от всяка група и повече записи на случаен принцип, след което опитайте това:

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;

Ето, Rownum се взема на случаен принцип за всяка група и след това резултатът приема rownum 1 и други rownum ако изпълняват произволно условие.

Наздраве!!



  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 - Разделен низ, разделен със запетая (низът съдържа интервали и последователни запетаи)

  2. Проблем с леви панди за свързване на таблици (ValueError:Опитвате се да обедините обект и int64 колони.)

  3. Как да идентифицирам делничните дни в Oracle?

  4. Стъпка по стъпка процес на надстройка за R12.2 надстройка, част -4 (прилагане на пакет за актуализация на версия 12.2.x)

  5. Преобразувайте Int32 в Oracle number(5) с EF4