私が間違っていることを理解していません。基準Aまたは基準Bを満たすすべてのIDの毎週のCOUNTを取得しようとしています.
select CREATE_WEEK, count ( A.PK )
from TABLE1 A
where ( A.PK not in (select distinct ( B.FK )
from TABLE2 B
where B.CREATE_TIMESTAMP > '01-Jan-2013')
or A.PK in (select A.PK
from ( select A.PK, A.CREATE_TIMESTAMP as A_CRT, min ( B.CREATE_TIMESTAMP ) as FIRST_B
from TABLE1 A, TABLE2 B
where A.PK = B.FK
and A.CREATE_TIMESTAMP > '01-Jan-2013'
and B.CREATE_TIMESTAMP > '01-Jan-2013'
group by A.PK, A.CREATE_TIMESTAMP)
where A_CRT < FIRST_B) )
and A.CREATE_TIMESTAMP > '01-Jan-2013'
and CREATE_WEEK >= 2
and THIS_WEEK - CREATE_WEEK >= 1
group by CREATE_WEEK
order by CREATE_WEEK asc
**注: table1 の PK = table2 の FK なので、最初のサブクエリで、table1 の PK が table2 の FK として存在するかどうかを確認しています。週は TO_CHAR (TO_DATE (TRUNC (A.CREATE_TIMESTAMP, 'IW')), 'IW') から取得されます
OR を取り出していずれかのサブクエリでクエリを実行すると、1 ~ 2 秒で結果が返されます。しかし、結合されたクエリを実行しようとすると、20 分後に結果が返されません。
それらを個別に実行してスプレッドシートに合計できることはわかっていますが、1 つの数値だけを取得したいのです。