sql >> Database >  >> RDS >> Oracle

Oracle SELECT TOP 10-records

U moet uw huidige zoekopdracht in een subquery plaatsen, zoals hieronder:

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 past rownum toe op het resultaat nadat het is geretourneerd.
U moet het resultaat filteren nadat het is geretourneerd, dus een subquery is vereist. U kunt ook de functie RANK() gebruiken om Top-N-resultaten te krijgen.

Voor prestaties kunt u NOT EXISTS gebruiken in plaats van NOT IN . Zie dit voor meer.



  1. Waarom is de duur NULL voor terugkerende gebeurtenissen in Android?

  2. Het dumpen van tabellen in orakel 10g met behulp van de PL/SQL-procedure

  3. PHP PDO voorbereide verklaring -- MySQL LIKE query

  4. Ongeldige standaardwaarde voor 'dateAdded'