我有一個挑戰,它包括過濾查詢,而不是使用表中不存在的值,而是使用函式檢索的值。
讓我們考慮一個包含資料庫中所有銷售額的表
id, description, category, price, col1 , ..... col n
我有一個功能,可以從一個類似的銷售表中檢索我(基于規則和業務邏輯)。此函式再次對銷售表中的所有記錄執行查詢,并在某些欄位中匹配驗證。
similar_sales (sale_id integer) - > returns a integer[]
現在我需要為銷售表中的每一個列出所有類似的銷售。
select s.id, similar_sales (s.id)
from sales s
但similar_sales 可以為空,我只感興趣回傳至少包含一個的銷售額。
select id, similar
from (
select s.id, similar_sales (s.id) as similar
from sales s
) q
where #similar > 1 (Pseudocode)
limit x
我無法在子查詢中進行限制,因為我不知道哪些銷售有相似之處。我只是想對一組小行而不是整個表進行子查詢以獲得查詢性能提升(分頁策略)
uj5u.com熱心網友回復:
你可以試試這個:
select id, similar
from sales s
cross join lateral similar_sales (s.id) as similar
where not isempty(similar)
limit x
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/385350.html
標籤:PostgreSQL的
下一篇:具有隱藏列值的資料框
