sql >> Database teknologi >  >> RDS >> Oracle

Oracle hvordan man partitionerer data og får poster for hver 10 %

En mulighed ville væ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

Der er sandsynligvis en mere effektiv tilgang ved at bruge PERCENTILE_DISC eller CUME_DIST det klikker ikke for mig i øjeblikket. Men dette burde virke.



  1. SQL Server-fejl 111:"...skal være den første sætning i en forespørgselsbatch"

  2. Opret ny tabel ved at vælge data fra andre tabeller med CREATE TABLE AS

  3. PHP-Form validering og indsættelse ved hjælp af MySql

  4. Hvordan viser man burmesiske tegn på hjemmesiden og optager dem i MySQL, hvis brugeren ikke har skrifttypen?