我在这里使用postgresql
这是我桌上的一个字段" num":
adsh :带破折号的某些数字,例如。(1234-23456-456789)
标记:字符例如。(ReturnOnAsset)
版本:可以是两种格式之一1.与adsh完全相同2. us-gaap / yyyy例如。 (US-GAAP / 2009)
还有一些其他专栏,但并不重要
主键是上面的3列和其他一些列组合
对于每个广告,有几个版本值us-gaap / dei / invest + yyyy或
另请注意,此表中有10 ^ 8个元组
第一步:select tag, version from num where version=adsh as result a
第二步:select adsh, version from num where version!=adsh as result b
第三步:select tag, b.version from a, b where a.version=b.adsh
我想知道我是否可以保存前两个步骤'结果暂时为了做第三步。我能做到吗什么是最有效的方法?
谢谢!
答案 0 :(得分:0)
我找到了使用with子句的解决方案:
with a as (select tag, version from num where version=adsh), b as (select adsh, version from num where version!=adsh) select tag, b.version from a, b where a.version=b.adsh;