表中的postgresql操作,并从同一个表中的两个不同结果中查找结果

时间:2016-06-17 18:42:31

标签: postgresql psql

我在这里使用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

我想知道我是否可以保存前两个步骤'结果暂时为了做第三步。我能做到吗什么是最有效的方法?

谢谢!

1 个答案:

答案 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;