テーブルの行数が多すぎるため、1000 のランダムな行を取得するための "ORDER BY dbms_random.value" 構造から SAMPLE 句に切り替えました。完了するのに 3 分ではなく、1 秒もかかりません。しかし、いくつかのテーブルでは、このエラーが発生します
ORA-01446: DISTINCT、GROUP BYなどのビューからROWIDを選択できません
私のクエリは次のようになります。
SELECT t1.columnA FROM
(SELECT columnA FROM table1 sample(1) where rownum <= 1000) t1
JOIN table2 t2
ON (t1.columnA = t2.columnA)
WHERE t2.columnB IS NOT NULL
一部のテーブルでは正常に機能しますが、他のテーブルでは失敗します。グーグルをあきらめました。私の状況での回避策を教えてください。