比方說,我有這樣的事情:引用postgres查詢中的動態列?
select sum(points) as total_points
from sometable
where total_points > 25
group by username
我不能指total_points
在where子句中,因爲我得到以下錯誤:ERROR: column "total_points" does not exist
。在這種情況下,我可以在where子句中重寫sum(points)
,但是我想用某種方式來完成上面的操作。
- 有什麼辦法將結果存儲在變量不使用存儲過程?
- 如果我做在where子句中重寫
sum(points)
,是postgres足夠聰明而不重新計算它嗎?
不,Postgres確實支持HAVING子句 - 請參閱Quassnoi的答案。 – 2010-01-20 15:30:32
雖然'PostgreSQL'不支持'HAVING'子句,這也是一個有效的答案(除了子查詢應該是別名)。看不出有什麼理由降低它。 – Quassnoi 2010-01-20 15:32:57
@Quassnoi - 同意。如果我爲我的別名做了一些冗長的數學函數,我寧願將它設置在一個子查詢中所以我的查詢看起來更清潔/更好。 – 2010-01-20 15:39:41