sql >> Databáze >  >> RDS >> Oracle

Oracle, jak rozdělit data a získat záznamy po každých 10 %

Jedna možnost by byla

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

Pravděpodobně existuje efektivnější přístup pomocí PERCENTILE_DISC nebo CUME_DIST to mi momentálně neklape. Ale to by mělo fungovat.



  1. Jak zabránit souběžnému přihlášení uživatelů na webu PHP/MySQL?

  2. Průvodce importem dat tabulky pracovního stolu MySQL je extrémně pomalý

  3. Replikace MySQL:Chybné transakce v replikaci založené na GTID

  4. Strugging s pružinou SimpleJdbcCall pro volání funkce Oracle