sql >> Databasteknik >  >> RDS >> Oracle

Oracle hur man partitionerar data och får poster var 10:e %

Ett alternativ skulle vara

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

Det finns förmodligen ett mer effektivt tillvägagångssätt med PERCENTILE_DISC eller CUME_DIST det klickar inte för mig just nu. Men det här borde fungera.



  1. Påverkar ordningen på fälten i en WHERE-sats prestanda i MySQL?

  2. SQL dålig prestanda för exekveringsplan för lagrad procedur - parametersniffning

  3. Rails + Postgres:Returnerar inte tidszoninformation på kolumn från sammanfogad tabell

  4. Laravel släpper främmande nyckel i migration