Buscamos por el mundo online para así tenerte la respuesta para tu inquietud, si continúas con alguna inquietud déjanos la inquietud y respondemos con mucho gusto, porque estamos para servirte.
Solución:
Deberá poner su consulta actual en subconsulta como se muestra a continuación:
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 aplica rownum al resultado después de que se haya devuelto.
Debe filtrar el resultado después de que se haya devuelto, por lo que se requiere una subconsulta. También puede usar la función RANK() para obtener resultados Top-N.
Para el rendimiento intente usar NOT EXISTS
en lugar de NOT IN
. Vea esto para más.
Si está utilizando Oracle 12c, utilice:
OBTENER SIGUIENTE norte SOLO FILAS
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
FETCH NEXT 10 ROWS ONLY
Más información: http://docs.oracle.com/javadb/10.5.3.0/ref/rrefsqljoffsetfetch.html
tratar
SELECT * FROM users FETCH NEXT 10 ROWS ONLY;
Nos puedes añadir valor a nuestra información tributando tu veteranía en las críticas.