2017-09-13 105 views
-1

如果我把它放在一個查詢文件中,PG將如何處理它?pg承諾在查詢文件中支持WITH子句嗎?

WITH regional_sales AS (
     SELECT region, SUM(amount) AS total_sales 
     FROM orders 
     GROUP BY region 
    ), top_regions AS (
     SELECT region 
     FROM regional_sales 
     WHERE total_sales > (SELECT SUM(total_sales)/10 FROM regional_sales) 
    ) 
SELECT region, 
     product, 
     SUM(quantity) AS product_units, 
     SUM(amount) AS product_sales 
FROM orders 
WHERE region IN (SELECT region FROM top_regions) 
GROUP BY region, product; 

是否需要使用WITH?我想有以下使用情況下,

SELECT * FROM balance WHERE bank_id = 1 FOR UPDATE(強制所有銀行ID 1的記錄被鎖定)

SELECT * FROM balance WHERE bank_id = 1 AND amount = 500(先手與銀行id爲1,但仍排確保所有銀行的ID記錄1被鎖定`

回答

-1

pg-promise不關心你的SQL是由,簡單地發送到服務器上爲是。

...這使你的問題無關/無效。

+0

感謝您的答覆,我無法找到任何使用WITH子句和pg promise的人的例子。在你看來,WITH子句可以完全避免嗎? – Zanko

+0

@Zanko您的問題與「pg-promise」無關。在GitHub上有很多例子,開發人員通過'pg-promise'執行'WITH'查詢,這些查詢又相互無關。 –