OracleのSQLステートメントに大きな問題があります。他の選択ステートメントからリストにないSTORAGE_DBで注文された上位10件のレコードを選択したい。
これはすべてのレコードで正常に機能します。
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') しかし、私が追加しているとき
AND ROWNUM <= 10
ORDER BY STORAGE_GB DESCなんらかの「ランダム」レコードを取得しています。制限は注文の前に行われるためだと思います。
誰かが良い解決策を持っていますか?その他の問題:このクエリは非常に遅い(1万レコード以上)