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

Oracle, jak partycjonować dane i uzyskiwać rekordy co 10%

Jedną z opcji byłoby

SELECT id,
       h,
       n,
       q
  FROM (
    SELECT id, 
           h, 
           n, 
           q,
           row_number() over (partition by decile order by id, n) rn
      FROM (
        SELECT id, 
               h, 
               n, 
               q,
               ntile(10) over (order by id, n) decile
          FROM your_table
            )
        )
   WHERE rn = 1

Prawdopodobnie istnieje bardziej wydajne podejście przy użyciu PERCENTILE_DISC lub CUME_DIST to mi w tej chwili nie działa. Ale to powinno działać.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wywołanie procedury składowanej z java dla Oracle typu TABLE

  2. Czy mogę pominąć weryfikację certyfikatu oracle utl_http?

  3. Zagadnienia dotyczące wydajności danych tymczasowych w Oracle

  4. Jak obliczyć różnicę między dwiema datami w PostgreSQL/Oracle?

  5. Funkcja BITAND() w Oracle