2014-02-19 36 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 ...") 
相关问题