2014-02-19 76 views
1

我已經根據我們服務的第一次使用日期建立了賬戶組羣。我需要在少數不同的查詢中使用這些隊列,但不希望在每個這些下游查詢中都創建查詢。
原因:第一次獲取數據花費了60多分鐘,所以我不想爲所有其他查詢支付該稅。如何在Oracle SQL中創建臨時表並向其中添加數據?

我知道我可以做一個聲明的形式大致如下:

WHERE ACCOUNT_ID IN ('1234567','7891011','1213141'...) 

但是,我不知道是否有創造,我和我的數據預填充臨時表的方式,像

WITH MAY_COHORT AS (SELECT ACCOUNT_ID Account_ID, '1234567' Account_ID, '7891011' Account_ID, '1213141') 

我知道上述方法不起作用,但希望在此提供任何建議或建議。 謝謝。

回答

1

除非我失去了一些東西,你已經在正確的軌道上,只是一個調整你的CTE應該工作:

WITH MAY_COHORT AS (SELECT Account_ID from TableName WHERE ACCOUNT_ID IN ('1234567','7891011','1213141'...)) 

應該給你May_Cohort表用於後續的查詢。

0

你也可以使用一個子選擇你的IDS(無WITH MY_COHORT):

WHERE ACCOUNT_ID IN (
      SELECT Account_ID 
      from TableName "Where ... your condition to build your cohort ...") 
相關問題