Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle SELECT ТОП 10 записа

Ще трябва да поставите текущата си заявка в подзаявка, както следва:

SELECT * FROM (
  SELECT DISTINCT 
  APP_ID, 
  NAME, 
  STORAGE_GB, 
  HISTORY_CREATED, 
  TO_CHAR(HISTORY_DATE, 'DD.MM.YYYY') AS HISTORY_DATE  
  FROM HISTORY WHERE 
    STORAGE_GB IS NOT NULL AND 
      APP_ID NOT IN (SELECT APP_ID FROM HISTORY WHERE TO_CHAR(HISTORY_DATE, 'DD.MM.YYYY') ='06.02.2009')
  ORDER BY STORAGE_GB DESC )
WHERE ROWNUM <= 10

Oracle прилага rownum към резултата, след като е бил върнат.
Трябва да филтрирате резултата, след като е бил върнат, така че е необходима подзаявка. Можете също да използвате функцията RANK(), за да получите Топ-N резултати.

За производителност опитайте да използвате NOT EXISTS на мястото на NOT IN . Вижте това за повече.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да актуализирате таблицата в oracle

  2. Какъв е минималният клиентски отпечатък, необходим за свързване на C# към база данни на Oracle?

  3. Рекурсивна заявка в Oracle

  4. REMAINDER() Функция в Oracle

  5. Oracle съхранява ли крайни нули за тип данни число?