いつもお世話になっております。
Oracle DBにある比較的大きなテーブル(約17GB)からデータを抽出したいのですが
Input Data ToolでVisual Query Builderからwhere条件で絞ろうとすると
どうしても4GB程度までしか絞り込みができません。
Alteryx側のデータの置き場の制約があり、もう少しデータを絞りたく、ランダムサンプリングを試みているのですが、
Input Data ToolのSQL Editor画面で以下のように書いた後に"Test Query"すると;
SELECT *
FROM (SELECT [列名]
FROM [テーブル名]
WHERE [絞り込み条件])
WHERE random() < 0.0001
以下のようなエラーとなります。
(無視してWorkflowを実行しても同じエラーがResult Windowに表示されます。)
Input Data ToolからのSQLでは上記のような入れ子構造のSQLは実行できないのでしょうか。
なお、このサイト https://dev.classmethod.jp/articles/alteryx-in-db/ を見て、
In-DBツールで行けるのかな、とも思っておりますが、まだ試しておりません。
In-DBツールが目指す方向であれば、そちらに方向転換いたします。
解決済! 解決策の投稿を見る。
@AkimasaKajitani さん ありがとうございます。少しずつ切り分けるのが大事ですね。
Oracleで
select * from (select * from hogehoge)
および
select * from (select * from hogehoge) where RowNum <= 10
としてTest Queryすると、いずれも
となりました。
DB2の場合、
select * from (select * from hogehoge)
では、上と同じ "successful" となりますが
select * from (select * from hogehoge) where RowNum <= 10
では、前にご報告したのと同じ
No Columns Returned
となりました。
サブクエリがうまくいかないのはDB2の場合に限るようです。