Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Oracle cách phân vùng dữ liệu và lấy bản ghi ở mức 10%

Một lựa chọn sẽ là

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

Có lẽ có một cách tiếp cận hiệu quả hơn bằng cách sử dụng PERCENTILE_DISC hoặc CUME_DIST điều đó không gây ấn tượng cho tôi vào lúc này. Nhưng điều này sẽ hoạt động.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sử dụng sqlldr từ java

  2. Tạo một bảng tạm thời toàn cầu trong Oracle

  3. Thực thi một hàm pl / sql với OracleCommand

  4. Cách PLAY_SOUND trong Oracle Forms

  5. java.lang.ClassCastException:oracle.sql.TIMESTAMP không thể truyền sang java.sql.Timestamp