Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle, wie man Daten partitioniert und alle 10 % Datensätze erhält

Eine Option wäre

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

Es gibt wahrscheinlich einen effizienteren Ansatz mit PERCENTILE_DISC oder CUME_DIST das macht mir im Moment keinen Spaß. Aber das sollte funktionieren.