postgresql 动态添加过滤条件_通过窗口函数进行过滤导致Postgresql
好的,最初這只是我們與我的一個朋友的笑話,但它變成了有趣的技術(shù)問題:)
我有以下的表格:
CREATE TABLE stuff
(
id serial PRIMARY KEY,
volume integer NOT NULL DEFAULT 0,
priority smallint NOT NULL DEFAULT 0,
);
該表包含所有我的東西的記錄,具有相應(yīng)的卷和優(yōu)先級(我需要多少).
我有一個指定體積的袋子,比如說1000.我想從桌子上選擇我可以放入一個袋子的所有東西,首先包裝最重要的東西.
這似乎是使用窗口函數(shù)的情況,所以這里是我想出的查詢:
select s.*, sum(volume) OVER previous_rows as total
from stuff s
where total < 1000
WINDOW previous_rows as
(ORDER BY priority desc ROWS between UNBOUNDED PRECEDING and CURRENT ROW)
order by priority desc
然而,問題是Postgres抱怨說:
ERROR: column "total" does not exist
LINE 3: where total < 1000
如果我刪除此過濾器,總列正確計算,結(jié)果正確排序,但所有的東西被選中,這不是我想要的.
那么我該怎么做呢?如何僅選擇可以放入包中的物品?
總結(jié)
以上是生活随笔為你收集整理的postgresql 动态添加过滤条件_通过窗口函数进行过滤导致Postgresql的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为辟谣20万月薪工资条 没有实体工资条
- 下一篇: 百度云cdn设置州五年制大专_[百度云C