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

Oracle SELECT TOP 10 záznamů

Svůj aktuální dotaz budete muset vložit do dílčího dotazu, jak je uvedeno níže:

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 použije rownum na výsledek poté, co byl vrácen.
Po vrácení musíte výsledek filtrovat, takže je vyžadován poddotaz. Můžete také použít funkci RANK() k získání nejlepších N výsledků.

Pro výkon zkuste použít NOT EXISTS místo NOT IN . Více viz.



  1. 5 zajímavých faktů o systémech správy databází

  2. SQL Server Blocking Query

  3. sql dotaz, který vrátí rozdíly mezi dvěma tabulkami

  4. Počítejte záznamy pro každý měsíc v roce